与某些URL jQuery验证错误
问题描述:
我一直在寻找一个答案,现在一段时间,想知道如果任何人有同样的问题。与某些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
}
}
});
任何深入了解此修复将是非常赞赏。
答
Yes, those characters are invalid.您可能希望采用的一个选项是在您的URL输入上有一个on change事件,它用URI编码值替换当前值。
$('.url-field').change(function() { $(this).val(encodeURI($(this).val())); });
不幸的是,这并不工作,得到的URL转换的东西,如:HTTP%3A%2F%2Fwww.play.com – 2012-02-14 21:30:01
对不起,你要'encodeURI'。这将保留原始URL的有效部分。 – HackedByChinese 2012-02-15 01:16:55