【问题标题】:jquery Validation Engine funcCall not working if only rule如果只有规则,jquery Validation Engine funcCall 不起作用
【发布时间】:2013-04-17 10:30:22
【问题描述】:

我有一个输入字段,我正在尝试向其中添加自定义验证(需要取决于另一个字段)。如果我输入 required AND funcCall() 我可以看到返回了两个错误。如果我只放 funcCall,则不会返回任何内容。我知道它进入了函数和条件,因为我做了一个 console.log() 但由于某种原因,它似乎需要一个初始规则才能显示错误。

呼叫:

<input type="text" class="validate[funcCall[validatePassportRequired]]" id="form_register_passport_number" value="" name="passport_number" size="50">

功能:

function validatePassportRequired(field, rules, i, options) {
  if ($('#register_for').val()!='Local') {
    return options.allrules.required.alertText;
  }
}

所以如果我将调用更改为:

class="validate[required, funcCall[validatePassportRequired]]"  

我得到两个 * 此字段是必需的

我必须与 funcCall 一起使用另一个验证规则吗?

【问题讨论】:

    标签: jquery-validation-engine


    【解决方案1】:

    只需在返回错误消息之前添加以下行,而不是在返回消息中将函数名称放在 .alertText 之前。

    rules.push('required');
    

    @sunzyflower 在您的情况下,您的函数将如下所示..

    function validatePassportRequired(field, rules, i, options) {
       if ($('#register_for').val()!='Local') {
       rules.push('required');  
       return options.allrules.validatePassportRequired.alertText;
       }
    }
    

    【讨论】:

    • 非常感谢!它实际上开始给我双重信息,所以我取出退货并只留下 rules.push('required') 并且效果很好!
    【解决方案2】:

    使用

    funcCallRequired[validatePassportRequired]
    

    而不是

    funcCall[validatePassportRequired]
    

    这将在内部添加 required 而不会出现双重消息。

    如果您想了解有关(旧)问题的更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多