Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果所有验证都正确,我如何提交表格?_Javascript_Jquery_Forms_Validation - Fatal编程技术网

Javascript 如果所有验证都正确,我如何提交表格?

Javascript 如果所有验证都正确,我如何提交表格?,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我刚刚完成验证工作。当我按submit时,会出现一个错误框,其中包含与字段相关的错误(例如使用的特殊字符)。当所有字段都正确后,我现在需要提交表单。我该怎么做?当我按下submit时,什么也没发生 $('button#form submit')。单击(函数(){ $。每个($(“表格#所有详细信息输入,表格#所有详细信息选择”),函数(a,b){ if(typeof$(this).attr(“数据类型”)!=“未定义”){ if($(this).val()==“”){ dialogWarnin

我刚刚完成验证工作。当我按submit时,会出现一个错误框,其中包含与字段相关的错误(例如使用的特殊字符)。当所有字段都正确后,我现在需要提交表单。我该怎么做?当我按下submit时,什么也没发生

$('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非常适合我。您已经删除了对话框警告,我需要弹出我的验证错误