Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Ruby On Rails_Jquery Validate - Fatal编程技术网

Javascript jQuery验证:输入名称值的正则表达式

Javascript jQuery验证:输入名称值的正则表达式,javascript,jquery,ruby-on-rails,jquery-validate,Javascript,Jquery,Ruby On Rails,Jquery Validate,我正在尝试为表单添加验证 $('#reportForm').validate({ rules: { 'report[invoices_attributes][0][invoice_type]' : { required: true, 'report[invoices_attributes][0][invoice_type]':true } } }); reportForm是我表单的id。我的所有输入字段名称值将类似于“报告[invoices

我正在尝试为表单添加验证

$('#reportForm').validate({
    rules: {
      'report[invoices_attributes][0][invoice_type]' :
  {
    required: true,
    'report[invoices_attributes][0][invoice_type]':true

  }
  }
  });
reportForm是我表单的id。我的所有输入字段名称值将类似于“报告[invoices_attributes][indexnr]…”(因为我使用的是嵌套属性,可以有0个或更多元素)

为此,我希望将所有的输入名称值与正则表达式匹配,如:
/^report\[invoices\u attributes\]\[[0-9]\](.*)/

如何将其添加到输入名称值的规则字段(当前为“报告[发票属性][0][发票类型]”),以匹配我感兴趣的所有字段?

首先,我想


.validate()
规则
对象内声明规则时,一次只能声明一个规则字段

$('#reportForm').validate({
    rules: {
        'report[invoices_attributes][0][invoice_type]': {
            required: true,
        },
        'report[invoices_attributes][1][invoice_type]': {
            required: true,
        },
        'report[invoices_attributes][2][invoice_type]': {
            required: true,
        },
        // etc.
    }
});
如果要在多个字段上声明,请使用
.rules()
方法以及jQuery
.each()
和任何针对您的组的适当jQuery选择器

$('.myfields').each(function() {
    $(this).rules('add', {
        required: true
    });
});
您也不能有一个布局,其中所有正在验证的字段共享相同的
名称
属性每个字段必须具有唯一的
名称
,或者复选框/单选按钮的单个“分组”可以共享一个
名称
没有解决方法。

如果您只需要可以简单地用布尔值声明的基本规则,那么可以使用内联属性,而不是
.rules()
方法或
规则
对象

<input name="foo" required="required" ....

你不能那样做。在
.validate()
规则
对象内声明规则时,一次只能声明一个规则字段。您也不能有一个布局,其中所有正在验证的字段共享相同的
名称
属性。每个字段必须具有唯一的
名称
。或者,复选框/单选按钮的单个“分组”可以共享一个
名称
。这些都在文档中有详细说明。在场景中的每个
名称下只能是规则列表,不能有更多的字段名。
<input name="foo" class="required" ....