2010-10-13 175 views
4

我的表單中有一個類別下拉選擇元素。形式與jQuery如下確認:jQuery驗證:非默認值

$('#myForm').validate({ 
    rules: { 
     text: { 
       required: true 
     }, 
     category: { 
      required: true 
     } 
    }, 
    messages: { 
     text: { 
      required: "Text required" 
     }, 
     category: { 
      required: "Category required" 
     } 
    } 

當加載頁面,類別的默認值是:「---」(不帶引號)。當我提交表格時,驗證表明eveything是可以的,因爲'---'不是什麼。如果將'---'用作類別,我該如何停止提交?其他類別如下所示:Category1。其中一個可能性必須選擇,我不能更改下拉選擇的東西。

謝謝!

回答

13

你可以添加自定義規則,像這樣:

jQuery.validator.addMethod("notEqual", function(value, element, param) { 
    return this.optional(element) || value !== param; 
}, "Please choose a value!"); 

然後使用規則在您rules,像這樣:

category: { 
     required: true, 
     notEqual: "---" 
    } 

You can test it out here

+0

非常感謝您的快速回復! – koko 2010-10-13 09:41:14

+0

嗨,我需要這個能夠顯示自定義消息(不:「請選擇一個值!」)。我將如何通過它呢?任何幫助將非常感激!。 – Anil 2011-11-30 17:24:44

+0

您只需更改文字「請選擇一個值!」去別的,不是嗎? – koko 2012-06-25 09:19:01

0

我用插件從MVC視圖http://jqueryvalidation.org/和改性如下:

注:當使用下拉項 - >值:0,文本: - 請選擇

- >添加自定義所需的類型

//====find "message {: ..." 
messages: { 
    required: "This field is required.", 
    remote: "Please fix this field.", 
    email: "Please enter a valid email address.",.... 

//====modify to 
messages: { 
    noDefaultVal: "This field is required.", //<-- modified 
    required: "This field is required.", 
    remote: "Please fix this field.", 
    email: "Please enter a valid email address.",.... 

- >添加定製所需的方法

//====and find "methods: {: ..." 
methods: { 
    // http://docs.jquery.com/Plugins/Validation/Methods/required 
    required: function(value, element, param) { 
    // check if dependency is met 
    if (!this.depend(param, element)) {.... 

//====modify to 
methods: { 
    noDefaultVal: function (value, element, param) { 
     return this.optional(element) || value != param; 
    }, 
    // http://docs.jquery.com/Plugins/Validation/Methods/required 
    required: function(value, element, param) { 
    .... 

- >對網頁腳本

$("#frmSave").validate({ 
    //set required fields 
    rules: { 
    ITEM_TYPE: { 
     required: true , 
     noDefaultVal: "0" 
    } 
    } 
}); 

方面。