【问题标题】:Validate Form Fields having [ or ] in names OR with ID [duplicate]验证名称中包含 [ 或 ] 或 ID 的表单字段 [重复]
【发布时间】:2014-10-24 12:27:31
【问题描述】:

我正在使用jquery.validate.min.js 进行表单字段验证。

我有一些名称为JFromField[contactname] 的字段(因为我使用的是Joomla,并且它来自后端)意味着它们的名称中有[]

那么在规则中,我该怎么做呢?

   rules:{
           myFieldName : {    required: true     }
         }

另一个问题是可以根据ID指定rules吗?

【问题讨论】:

标签: javascript jquery validation


【解决方案1】:

由于[] 不是有效标识符,您可以将密钥作为字符串传递,例如

$('form').validate({
  rules: {
    myFieldName: {
      required: true
    },
    'JFromField[contactname]': {
      required: true
    }
  }
});

//to simulate validation since form submit is prevented
$('#save').click(function(){
  return $('form').valid()
})
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>

<form>
  <input name="myFieldName" />
  <br />
  <input name="JFromField[contactname]" />
  <br />
  <input type="button" id="save" value="Save" />
</form>

【讨论】:

  • 这对我来说似乎不起作用:(
【解决方案2】:

javascript 对象的语法。使用 " 或 ' 将带有 [ ] 的字段分配给对象。并使用 ["field"] 获取值。

var r = { rules: { "JFromField[contactname]" : {    required: true     } } };
console.log(r);
console.log(r.rules);
console.log(r.rules["JFromField[contactname]"]);
console.log(r.rules["JFromField[contactname]"].required);

【讨论】:

  • 编辑你的答案来解释你在做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 2016-12-06
  • 2018-08-04
  • 1970-01-01
  • 2017-08-11
相关资源
最近更新 更多