我正在尝试使用j-query提交表单,在提交之前应该进行一些验证,并且我已经使用ajax验证了capcha。没有ajax验证,一切正常。
<form id="RegistrationForm" name="RegistrationForm" method="post" action="save.php" >
jquery代码
$('#RegistrationForm').submit(function(){
//some validation goes here
if($('#captcha').val() != '')
{
var captcha = $('#captcha').val();
$.ajax({
url:'validate.php',
type:'POST',
data:{captcha:captcha},
success: function(data){
if(data == 'false')
{
alert('Wrong Captcha is typed!');
return false;
}
else
{
alert('enter');
document.getElementById("RegistrationForm").submit();
return true;
}
}
});
}
});`
在提交表单时显示警告“输入”但表单未提交。 提前谢谢。
答案 0 :(得分:0)
您可能需要将变量更改为JSON,以了解您是如何从php中进行检索的。如果那不是解决方案,请尝试
if (data){
}else{
}
仅供参考,这不是jquery验证。 Jquery验证是一个库设置,以确保在提交之前正确设置正确的字段。如果验证码在提交后是正确的,则会对您所做的事情进行测试。
答案 1 :(得分:0)
尝试这样的事情
$(function(){
$('#RegistrationForm').submit(function(){
if($('#captcha').val() != ''){
var captcha = $('#captcha').val();
$.ajax({
url:'validate.php',
type:'POST',
async:false,
data:{captcha:captcha},
success: function(response){
if(response == 'false')
{
alert('Wrong Captcha is typed!');
return false;
}
else
{
alert('enter');
return true;
}
}
});
}
});`
})
答案 2 :(得分:0)
尝试制作ajax同步
$.ajax({
url:'validate.php',
type:'POST',
async: false,
data:{captcha:captcha},
success: function(data){
if(data == 'false')
{
alert('Wrong Captcha is typed!');
return false;
}
else
{
alert('enter');
document.getElementById("RegistrationForm").submit();
return true;
}
}
});
答案 3 :(得分:0)
我认为问题是当ajax请求返回其他值而不是false时,每次再次调用submit时,我认为每次调用提交函数,但无法成功提交。因为它递归调用提交函数。
试
$('#RegistrationForm').submit(function(){
//some validation goes here
if($('#captcha').val() != '')
{
var captcha = $('#captcha').val();
$.ajax({
url:'validate.php',
type:'POST',
data:{captcha:captcha},
success: function(data){
if(data == 'false')
{
alert('Wrong Captcha is typed!');
return false;
}
else
{
alert('enter');
}
}
});
}
});