ajax를 사용하여 보안 문자를 확인하려고하는데, 반환 값이 거짓 양식을 제출하더라도 내 잘못은 어디입니까?
<form id="myid" name="formname" method="post" action="action.php" onsubmit="return validate();">
JS
function validate()
{
if(document.getElementById('cap').value==''){
alert("Please enter verification number shown in below image");
document.getElementById('cap').focus();
return false;
}
var capval=document.getElementById('cap').value;
capcheck(capval).success(function (data) {
//alert(data); not getting alert message
if(data == "fail"){return false;}
});
// return false; (if I use this, above alert works gives outputs either ok or fail
}
////
function capcheck(capvalue){
return $.ajax({
url: 'check_cap.php',
type: 'GET',
cache: false,
data: {
capid:capvalue
}
});
}
문제는 검사가 비동기 적이라는 것입니다. 양식 제출을 취소하고 나중에 유효성 검사 요청이 반환되면 제출할 수 있습니다.
이런 식으로 시도
HTML로
onsubmit="return validate(this);"
js에서
function validate(form)
{
if(document.getElementById('cap').value==''){
alert("Please enter verification number shown in below image");
document.getElementById('cap').focus();
return false;
}
var capval=document.getElementById('cap').value;
capcheck(capval).success(function (data) {
if(data != "fail") {
form.submit(); // HERE IS THE ASYNC SUBMIT
}
else alert('form error: '+ data);
});
return false; // ALWAYS PREVENT SUBMIT ON CLICK OR ENTER
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다