0

不完全确定,也找不到允许 x 个验证中的 1 个通过整个表单的验证的设置。

我不得不使用 .rules("add" 函数,因为我的字段在 name 属性中有数组键。当所有字段都失败但如果 1 个字段具有有效内容时,jQuery Validate 按预期工作,则整个表单通过验证。

<form id="new_user_session">
   <input class="input-block-level sq-input" id="user_session_email" name="user_session[email]" placeholder="email address" type="text">
   <input class="input-block-level sq-input" id="user_session_password" name="user_session[password]" placeholder="password" type="password">
</form>

<script type="text/javascript">
  jQuery(function() {
      jQuery('#new_user_session').validate();

      jQuery("#user_session_email").rules("add", {
          email: true,
          messages: {
              email: "Please insert a valid email address",
              required: "Please insert your email address"
          },
          required: true
      });

      jQuery("#user_session_password").rules("add", {
          messages: {
              required: "Please insert your password"
          },
          required: true
      });
  });
</script>

提前致谢 !

4

2 回答 2

1

经过一番搜索,这似乎是validate 插件的最新版本的一个已知问题。当您messages在添加规则时使用该属性时会发生这种情况。

对于这个问题,你有两个直接的解决方案:

编辑:作者解决了这个提交的问题,所以你可以添加第三个解决方案:

于 2013-03-20T09:25:36.150 回答
1

您不需要首先使用该rules('add')方法,因此您可以轻松地完全避免该错误

只需遵循包含括号的文档指南names并将它们括在引号中。

工作演示:http: //jsfiddle.net/K65e5/

$(document).ready(function () {

    $('#new_user_session').validate({
        rules: {
            'user_session[email]': {
                email: true,
                required: true
            },
            'user_session[password]': {
                required: true
            }
        },
        messages: {
            'user_session[email]': {
                email: "Please insert a valid email address",
                required: "Please insert your email address"
            },
            'user_session[password]': {
                required: "Please insert your password"
            }
        }
    });

});
于 2013-03-20T15:56:19.553 回答