错误jquery验证插件取决于。当字段无效时,表格有效

时间:2018-01-10 08:48:09

标签: javascript php jquery forms validation

问题描述

我有一个Web表单向导,我需要验证,支持(a)隐藏字段和(b)条件验证。 Jquery似乎最合适。全部设置如下(简化示例):

$( "form[name=form]" ).validate({
    ...
    ignore: [],
    rules: {
        'form[owner]': {
            required: true,
        },
        'form[bank_account]': {
            required: true, 
            depends: function(element){
                    return $('#my_select').is(':checked');`
    messages : {
        'form[owner]' : {
             required: "The owner is necessary",
        },
        'form[bank_account]' : {
            required: "This field must be filled out when switch on",
         },
    ...
})

错误说明

  1. 我通过提交表单而不填写上面列出的字段来强制验证出错。
  2. 在我的情况下,因为有一个向导,我输出带有警报的消息,因为这些错误最初是不可见的。
  3. 我返回表单,仅填写所有者,并尝试通过 my_select选中
  4. 提交再次强制验证失败
  5. 验证已通过(并提交表单),但仍有一个无效的字段,导致服务器端出错。
  6. 在javascript控制台上,我收到以下错误:

      

    无法阅读财产'来电'未定义的。检查元素表单[bank_account]时发生异常,检查方法取决于

    预期结果

    所有字段都应相应验证,以便在每次提交表单时进行表单验证

    如何修复?

1 个答案:

答案 0 :(得分:0)

因为我没有发现任何类似于我的问题。我找到的解决方案如下:

不使用depends方法,而是使用函数来确定是否应该要求字段,包括在此操作应该依赖的条件中(即,是否选中了复选框)

$( "form[name=form]" ).validate({
    ...
    ignore: [],
    rules: {
        'form[owner]': {
            required: true,
        },
        'form[bank_account]': {
            required: function(element){
                    return $('#my_select').is(':checked') && $('form_bank_account').val();
    messages : {
        'form[owner]' : {
             required: "The owner is necessary",
        },
        'form[bank_account]' : {
            required: "This field must be filled out when switch on",
         },
    ...
})

文档都令人困惑,或者库有错误。