Javascript 使用onSubmit时提交表单
我的提交表格是:Javascript 使用onSubmit时提交表单,javascript,jquery,Javascript,Jquery,我的提交表格是: onsubmit="validate(this); return false;" validate()如下所示: function validate(obj) { $.ajax({ url : "ajax/validate_check.php", type : "POST", data : $("#" + obj.id).serialize(), success : function(data) {
onsubmit="validate(this); return false;"
validate()如下所示:
function validate(obj) {
$.ajax({
url : "ajax/validate_check.php",
type : "POST",
data : $("#" + obj.id).serialize(),
success : function(data) {
$('#' + obj.id + ' :input.form_errors').removeClass('form_errors')
data = $.parseJSON(data);
if(data['error_count'] >= 1) {
$.each(data, function(i, item) {
$('#' + i).addClass('form_errors');
});
} else {
$('#' + obj.id).submit();
}
}
});
}
当我有0个错误时,它试图提交表单,但我得到一个无限循环。我意识到这是因为onSubmit再次调用了该函数。当我准备好的时候,我如何提交表格?正确的方法是什么 验证函数应根据错误返回true或false
onsubmit = "return validate(this)"
function validate(obj){
...
if(data['error_count'] >= 1) {
$.each(data, function(i, item) {
$('#' + i).addClass('form_errors');
});
return false; //stop submitting
} else {
return true;//continue submitting
}
}
尽管如此,由于您使用的是jquery:
$("#formid").submit(function(){
//your validation code
});
可能更好
查看更多详细信息。有一个很好的例子。根据错误,验证函数应该返回true或false
onsubmit = "return validate(this)"
function validate(obj){
...
if(data['error_count'] >= 1) {
$.each(data, function(i, item) {
$('#' + i).addClass('form_errors');
});
return false; //stop submitting
} else {
return true;//continue submitting
}
}
尽管如此,由于您使用的是jquery:
$("#formid").submit(function(){
//your validation code
});
可能更好
查看更多详细信息。有一个很好的例子。您已经提交表单进行验证 在
}上,否则{
您将无法再次提交它,正如您所注意到的。您应该调用一个函数将它提交到处理经过验证的数据的任何地方。php
尽管我建议使用相同的.php
来验证和处理数据-每个类都有一个类或函数。这样,您可以:
$('.forms_that_need_validation').submit(function() {
$.ajax({
url : "ajax/data_validation_and_processing.php",
type : "POST",
data : $(this).serialize(),
success : function(data) {
$(this + ' :input.form_errors').removeClass('form_errors')
data = $.parseJSON(data);
if(data['error_count'] >= 1) {
$.each(data, function(i, item) {
$('#' + i).addClass('form_errors');
});
} else {
location.reload();
}
}
});
return false;
});
发生的情况是,如果数据未被验证,它将返回一个错误-您应该编写代码
.php
,以便在未验证的情况下不处理数据。否则,数据已被验证和处理,然后它将重新加载页面。您已经提交表单进行验证
在}上,否则{
您将无法再次提交它,正如您所注意到的。您应该调用一个函数将它提交到处理经过验证的数据的任何地方。php
尽管我建议使用相同的.php
来验证和处理数据-每个类都有一个类或函数。这样,您可以:
$('.forms_that_need_validation').submit(function() {
$.ajax({
url : "ajax/data_validation_and_processing.php",
type : "POST",
data : $(this).serialize(),
success : function(data) {
$(this + ' :input.form_errors').removeClass('form_errors')
data = $.parseJSON(data);
if(data['error_count'] >= 1) {
$.each(data, function(i, item) {
$('#' + i).addClass('form_errors');
});
} else {
location.reload();
}
}
});
return false;
});
发生的情况是,如果数据未被验证,它将返回一个错误-您应该编写代码
.php
,以便在未验证的情况下不处理数据。否则,数据已被验证和处理,然后它将重新加载页面。OP使用AJAX验证表单,因此这没有帮助。它似乎不起作用ng对我来说。知道为什么吗?在这种情况下,将验证移动到按钮,单击验证成功,然后提交表单。我正在考虑这个问题,但我希望用户能够按enter键提交表单。返回未定义OP使用AJAX验证表单,所以这没有帮助。这似乎对我不起作用。知道为什么吗?在t case将验证移动到按钮,单击验证成功,然后提交表单。我正在考虑这个问题,但我希望用户能够按enter键提交表单。返回未定义