2012-02-14 68 views
1

我一直在尋找一個答案,現在一段時間,想知道如果任何人有同樣的問題。與某些URL jQuery驗證錯誤

jQuery.validation插件可以正常工作,通常只有幾個URL不能正確驗證,我正在努力弄清楚爲什麼(或有效的解決方法)。

普通的URL做工精細,如http://www.play.com,但下面的網址永遠無法驗證:

http://www.play.com/DVD/Blu-ray/4-/21404340/Transformers-3-Dark-Of-The-Moon-3D/Product.html?searchstring=&searchtype=allproducts&searchsource=2&searchfilters=ae212 {644651}%2BC {600}%2B & urlrefer =搜索

我猜是由於{}字符。

我使用的是通用的驗證插件的使用:

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     url: true 
    } 
    } 
}); 

任何深入瞭解此修復將是非常讚賞。

回答

0

Yes, those characters are invalid.您可能希望採用的一個選項是在您的URL輸入上有一個on change事件,它用URI編碼值替換當前值。

$('.url-field').change(function() { $(this).val(encodeURI($(this).val())); }); 
+0

不幸的是,這並不工作,得到的URL轉換的東西,如:HTTP%3A%2F%2Fwww.play.com – 2012-02-14 21:30:01

+0

對不起,你要'encodeURI'。這將保留原始URL的有效部分。 – HackedByChinese 2012-02-15 01:16:55