2013-04-24 110 views
6

我有一个输入字段,我试图添加自定义验证(需要根据另一个字段)。如果我把需要和funcCall()我可以看到,两个错误返回。如果我只是把funcCall没有返回。我知道它正在进入函数和条件,因为我做了一个console.log(),但由于某种原因,它似乎需要一个初始规则才能显示错误。jquery验证引擎funcCall不工作,如果只有规则

电话:

<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]]" 

我得到两个*这是必须填写

待办事项我必须有另一个验证n规则与funcCall一起?

回答

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; 
    } 
} 
+0

太谢谢你了!它实际上开始给我提供双重信息,所以我拿出了回报,并留下了rules.push('required'),并且完美运作! – sunzyflower 2013-05-05 00:14:30

+0

救世主:) – Andrej 2013-08-14 21:00:26