2013-04-24 106 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