2011-04-18 55 views
0

我有一個下拉列表

$.validator.addMethod("ddlNames", function (value) { 
     if ($("#NameList.val()=="-1") 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
       }   

    }, "Please select a valid Name"); 

此驗證罰款去。但是,當我改變下拉值(有效選擇)的錯誤信息之前出現其stil顯示。請任何人幫助我?

感謝

+2

請花一些時間正確地編輯你的問題。在代碼中有一些明顯的錯字 - 請編輯它以完全匹配您的代碼(使用編輯器中的代碼「{}」按鈕)。 – Mat 2011-04-18 13:05:39

+0

發佈您的DDL的HTML。 – Nix 2011-04-18 13:42:43

回答

0

在的document.ready您需要添加另一條線,說(替換:#< targetform>與您的形式):

$('#<targetform>').validate({ 
    rules : { 
     names : { ddlNames: true } 
} 
}); 

請確保您有一個class="required"您的<select>


您不應該需要自己清除它們,但有辦法...:

$.validator.resetForm(); 

,將確保你有效每次開始。

+0

在哪裏包含此行以刪除該消息 – 2011-04-18 13:22:53

1

您需要在更改下拉列表時以編程方式調用驗證。例如,如果您有:YOUR_FORM驗證。將一個變量分配給validate方法。 然後使用.form()在您的下拉列表的更改事件中調用它。

文檔:http://jqueryvalidation.org/Validator.form/

示例代碼:

$('#ddlNames').change(function() { 
    form_validator.form(); 
}); 

var form_validator = $("#YOUR_FORM").validate({ 
    ignore: "", 
    rules: { 
     firstname: { 
      required: true, 
      minlength: 2 
     }, 
     ...