如果只有规则,jquery验证引擎funcCall不工作

时间:2013-04-24 02:30:40

标签: jquery-validation-engine

我有一个输入字段,我正在尝试添加自定义验证(根据另一个字段需要)。如果我放入必需的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?

2 个答案:

答案 0 :(得分:12)

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

rules.push('required');

@sunzyflower在你的情况下,你的功能会看起来像..

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

答案 1 :(得分:1)

使用

funcCallRequired[validatePassportRequired]

而不是

funcCall[validatePassportRequired]

这将在内部添加所需内容,而不会显示双重消息。

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