2011-08-05 49 views
1

所以基本上我試圖驗證URL(http://www.x) - 目前正在工作 - 最重要的是,驗證jsFiddle(輸入必須以「http: //www.jsfiddle.net/ http://www.stackoverflow.com/ 「)」)&計算器的URL(輸入必須以「驗證自定義輸入URL字段與jQuery和正則表達式

這裏是工作提琴http://jsfiddle.net/eAnS9/

驗證是bassistance validate plugin ,這是documented here

任何想法如何基於它們的開始值正確驗證字段?

UPDATE:它必須與bassistance當前驗證/整合,可能作爲一個自定義的網址功能在助力源代碼? (有其中的URL正則表達式是)

回答

2

使用validator.addMethod()來創建自定義規則。這一個應該做的伎倆:

//--- Add a domain-check rule 
jQuery.validator.addMethod ("domainChk", function (value, element, params) { 

     if (this.optional (element)) 
      return true; 

     //--- Get the target domain, this will be in the rel attribute. 
     var targDomain = $(element).attr ("rel"); 
     var regExp  = new RegExp ("^https?:\/\/(www.)?" + targDomain + "\/", "i"); 

     return regExp.test (value); 
    }, 
    function errmess (params, element) { 
     return "This must be a valid URL for " + $(element).attr ("rel"); 
    } 
); 

現在將其連接到一個CSS類。 :

jQuery.validator.addClassRules ({ domainChk: {domainChk: true} }); 


domainChk規則預計所需的站點是在輸入的相對屬性,就像這樣:

<input class="field required url domainChk" rel="jsfiddle.com"  ...> 
<input class="field required url domainChk" rel="stackoverflow.com" ...> 


這就是它! See it all in action at jsFiddle.

+0

完美答案。非常感謝Brock,今天我學到了很多:) – Maverick

+0

不客氣;樂意效勞。 –