Javascript 如果所有验证都正确,我如何提交表格?
我刚刚完成验证工作。当我按submit时,会出现一个错误框,其中包含与字段相关的错误(例如使用的特殊字符)。当所有字段都正确后,我现在需要提交表单。我该怎么做?当我按下submit时,什么也没发生Javascript 如果所有验证都正确,我如何提交表格?,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我刚刚完成验证工作。当我按submit时,会出现一个错误框,其中包含与字段相关的错误(例如使用的特殊字符)。当所有字段都正确后,我现在需要提交表单。我该怎么做?当我按下submit时,什么也没发生 $('button#form submit')。单击(函数(){ $。每个($(“表格#所有详细信息输入,表格#所有详细信息选择”),函数(a,b){ if(typeof$(this).attr(“数据类型”)!=“未定义”){ if($(this).val()==“”){ dialogWarnin
$('button#form submit')。单击(函数(){
$。每个($(“表格#所有详细信息输入,表格#所有详细信息选择”),函数(a,b){
if(typeof$(this).attr(“数据类型”)!=“未定义”){
if($(this).val()==“”){
dialogWarning('form submit'失败,'字段'+$(this).prop(“占位符”)+''必须填充“”);
返回false;
};
if($(this.attr(“数据类型”)=“文本”){
if(/^[a-z0-9]+$/i.test($(this.val())==false){
dialogWarning('form submit'失败,'请不要在字段“'+$(this).prop(“占位符”)+'”中使用特殊字符);
返回false;
};
}else if($(this.attr(“数据类型”)=“数字”){
if($.isNumeric($(this.val())==false){
dialogWarning('form submit'失败,'字段''+$(this).prop(“占位符”)+''只能是一个数字');
返回false;
}
}
};
});
/*提交表格*/
});代码>
收货人:
姓名:
有什么特殊要求吗
提交
我想这样做:
$('button#form-submit').click(function() {
var _errors = [];
$.each($("form#all-details input,form#all-details select"),function(a,b){
if (typeof $(this).attr("data-type") != "undefined") {
if ($(this).val()=="") {
_errors.push('<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be populated</p>');
};
if ($(this).attr("data-type")=="text") {
if (/^[a-z0-9 ]+$/i.test($(this).val())===false) {
_errors.push('<p>Please do not use special characters in field <b>"'+$(this).prop("placeholder")+'"</b></p>');
_errors++;
};
} else if ($(this).attr("data-type")=="number") {
if ($.isNumeric($(this).val())===false){
_errors.push('<p>Field <b>"'+$(this).prop("placeholder")+'"</b> must be a number only</p>');
_errors++;
}
}
};
});
if (_errors.length > 0) {
dialogWarning('Failure with form submit', _errors.join(' ');
return false;
} else {
$(this).submit();
}
/* Submit form */
});
$('button#form submit')。单击(函数(){
var_errors=[];
$。每个($(“表格#所有详细信息输入,表格#所有详细信息选择”),函数(a,b){
if(typeof$(this).attr(“数据类型”)!=“未定义”){
if($(this).val()==“”){
_错误。推送(“字段”'+$(此).prop(“占位符”)+'”必须填充“”);
};
if($(this.attr(“数据类型”)=“文本”){
if(/^[a-z0-9]+$/i.test($(this.val())==false){
_错误。推送('请不要在“'+$(this).prop(“占位符”)+'”字段中使用特殊字符);
_错误++;
};
}else if($(this.attr(“数据类型”)=“数字”){
if($.isNumeric($(this.val())==false){
_错误。推送(“字段“+$(this).prop(“占位符”)+”只能是一个数字;
_错误++;
}
}
};
});
如果(_errors.length>0){
dialogWarning('form submit'失败,_errors.join('');
返回false;
}否则{
$(this.submit();
}
/*提交表格*/
});
这样,它将一次处理多个错误,并且您将对单击事件有更多的控制权。如果您的按钮添加了type=“submit”,那么这应该可以工作。将验证放在函数中,例如
function validate() {
// validation code
}
然后以您的形式调用它:onSubmit=“validate()”
注意:您的返回false将从$中跳出。每个而不是提交处理程序。您只需执行$(“#所有详细信息”).submit()
(在$之外。每个)提交表单;这是在一个将在每个验证中验证和设置的标志之后。$(“#所有详细信息”).submit()
应该在验证完成后完成操作。@JIMMYTHECODE删除返回false
并使用事件。preventDefault
$(“按钮”表单提交”)。单击(函数(事件)…
然后在内部作为第一行事件.preventDefault()
。在您验证之前,这应该会阻止提交。我已经用100%功能齐全的表单更新了JSFIDLE,减去了您的dialogWarning
调用,我将其替换为一个简单的警报。您的问题必须在代码的其他地方。我完全复制了您的问题,进行了我提到的更改,然后注释掉了您的dialogWarning
s,JSFIDLE非常适合我。您已经删除了对话框警告,我需要弹出我的验证错误