Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 强制抛出jquery验证程序错误_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript 强制抛出jquery验证程序错误

Javascript 强制抛出jquery验证程序错误,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我将jQuery验证插件用于ajax表单 验证我使用的每个字段数据规则required=“true” 现在我有四个字段(读作4个信用卡字段)。现在,对于所有这些字段,我得到了必需的错误 我想合并它们的值,并发送一个附加到“一个错误”字段的错误 我尝试了以下方法: form3_validation.showErrors({ "field_name1": "This is error" }); 但它会对每个字段抛出一个错误,即使它们是有效的。我只想针对那个字段。更新:OP澄清了用户关注的是jQ

我将jQuery验证插件用于ajax表单

验证我使用的每个字段
数据规则required=“true”

现在我有四个字段(读作4个信用卡字段)。现在,对于所有这些字段,我得到了必需的错误

我想合并它们的值,并发送一个附加到“一个错误”字段的错误

我尝试了以下方法:

form3_validation.showErrors({
  "field_name1": "This is error"
});

但它会对每个字段抛出一个错误,即使它们是有效的。我只想针对那个字段。

更新:OP澄清了用户关注的是jQuery验证插件,而不是JS中的通用数据验证。留下这个答案,因为它不是完全相关的,但可能仍然有助于某人

您可以为每个字段添加标识的字段(例如,数据属性
数据字段id
),然后检查每个输入字段,如果其中一个字段为空,则报告错误

这将遍历每个输入框,并具体报告哪一个是问题所在,因为它们都由标识符标记

var字段=$(“.field”);
$(“按钮[type=submit]”。单击(函数(){
var错误=错误;
字段。每个(函数(){
如果(错误){
返回;
}
if($(this).val()=“”){
error=“error:必填字段”+$(此)。数据(“字段id”)+“为空。”;
}
});
如果(错误){
警报(错误);
}否则{
警惕(“一切都好!”);
}
});
.field{
宽度:50px;
}

-
-
-

首先提交,从这些字段中删除数据规则required=“true”

通常的处理方式是使用。此方法允许您将多个字段视为一个字段。将其与组合,以获取此组中所有字段的单个消息

$(document).ready(function() {

    $('#myform').validate({
        groups: {
            creditcard: "foo1 foo2 foo3 foo4"
        },
        rules: {
            // some other rules here
        },
        errorPlacement: function(error, element) {
            error.insertBefore(element);
        }
    });

    var myGroup = $('.mygroup');

    myGroup.each(function() {
        $(this).rules('add', {
            require_from_group: [4, myGroup],
            messages: {
                require_from_group: "credit card number required"
            }
        });
    });

});
  • 所有四个字段共享一个名为
    mygroup
    的类名,用于 识别这些
  • require\u from\u group
    方法是的一部分,所以别忘了包括这个 也是
  • 我使用
    .rules()
    方法只是为了避免定义 同一规则在
    .validate()
    方法
演示:



以上内容根据客户要求回答了您的问题。但是,
additional methods.js
文件已经包含了几个用于信用卡字段的现成规则。这比在一个分组中有四个数字框更干净、更容易实现。

4个信用卡字段?它们都是用来输入信用卡号的吗?为什么不像几乎所有其他站点一样只使用一个字段呢?(这将使您的生活更轻松,不仅仅是为了表单验证…)16位数字,每个数字分为4位…然后您必须将这些数字组合在一起才能获得信用卡号以便在任何地方使用。你最好有一个字段,访客输入他们信用卡号的所有16位数字——人们已经习惯了这一点,附带的好处是它简化了表单验证。您还应该知道,信用卡号码并不总是16位数字,也不总是以4块为一组。这是客户的要求,我不想修改他的设计……但我想要的是如何为特定字段触发/抛出错误,不是每个字段都有。啊-客户端约束-这改变了整个事情…问题是关于jquery验证:(不是自定义的)script@Alice我的错。当你提到“验证”时,我以为你只是指JS中的数据验证。我编辑了你的问题,并添加了jquery验证标记以使这一点更加清楚。