2010-12-13 30 views
2

如何在jquery.validate中使用addmethod。 例jquery.validate中的addmethod

$("#formname").validate({ 
    rules: { 
     textbox: { 
      required: true, 
      regexp: /['"]/ 
     }, 
     methods: { 
      required: "Should not be blank", 
      regexp: "Single quotes and double quotes not allowed" 
     } 
    } 
}); 

我需要檢查這個引號的文本框與addmethod。我怎樣才能做到這一點。用我的示例代碼來解釋我的答案。

回答

2

首先,我們需要一些修正,爲messages佈局是這樣的(你不能用你原來選擇做這個...這個插件只是不尋找那些結構):

$("#formname").validate({ 
    rules: { 
     textbox: { 
      required: true, 
      regexp: /['"]/ 
     } 
    }, 
    messages: { 
     textbox: { 
      required: "Should not be blank", 
      regexp: "Single quotes and double quotes not allowed" 
     } 
    } 
}); 

然後你的方法應該是這樣的:

$.validator.addMethod("regexp", function(value, element, param) { 
    return this.optional(element) || !param.test(value); 
}); 

You can test it out here ....但你發現你的正則表達式是倒退的,所以命名並不完全正確的...我會重新命名regexpnomatch ...什麼更能表明你的行爲爲...而努力。

0
$("#formname").validate({ 
    rules: { 
    textbox: { 
     required: true, 
     regexp: true 
    } 
    }, 
    messages: { 
    textbox: { 
     required: "Should not be blank", 
     regexp: "Single quotes and double quotes not allowed" 
    } 
    } 
}); 



// Regexp validation 
$.validator.addMethod("regexp", function(value, element, arg){ 
var reg_val=$('#textbox').val(); 
var regExp=/^['"]+$/; 

if($('#textbox').val().match(reg_val)){ 
    return true; 
}else{ 
    return false; 
} 
}, "");