어쩌면이 방법이 더 서버 측에서 유효성 검사를 수행하고 (예를 들어) JSON을 반환
완벽한 솔루션보다 힌트 ...처럼 .. 당신을 도울 수 - 은 $ 진행이 참/거짓 - 검증 결과에 따라와 $ 오류가 배열 (이름, translated_error/또는 "")
부분 PHP :
$res = array(
'progress' => $progress,
'errors' => $errors
);
$jsonReturn = json_encode($res);
//output result
header('Content-Type: text/html; charset=utf-8');
echo $jsonReturn;
부분 jQuery를 :
var errorFields = $([]).add(field1_error).add(field2_error).add(field3_error),
mainFields = $([]).add(field1).add(field2).add(field3);
$('#btnPublish').button().click(function(event){
mainFields.removeClass('ui-state-error');
errorFields.val();
$.ajax({
type: 'POST',
url: your_url,
data: $('#your_form_id').serialize(),
async: false,
success: function (returned_value){
var obj = $.parseJSON(returned_value);
if (obj.progress==true){
alert('Validation successfull');
}else{
$.each(obj.errors, function(index, value) {
if (value!=""){ //it will skip those fields with no errors
$('#'+index).addClass(('ui-state-error'));
$('#'+index+'_error').val(value);
}
});
}//end return ajax
}//end ajax
});
});
여기에 AJAX를 사용의 이점은 무엇입니까? 제대로 이해한다면 제출시 전체 양식에 대한 서버 측 유효성 검사를 사용하고 있습니다. 실제로 페이지를 제출하고 양식과 함께 서버에서 생성 된 유효성 검사 출력을 표시하는 것과 어떻게 다릅니 까? – Krab
그 이유는 드롭 다운 선택에 따라 추가 필드를 표시하기 때문입니다. 페이지를 정상적으로 제출하면 해당 필드가 손실됩니다. 나는 이것을 해결하기가 훨씬 어렵다고 믿는다. –