我想为一些自定义字段制作一个简单的 url 验证器。我尝试了默认的(添加类validate-url
或 validate-clean-url
输入) - 但这些并不像我希望的那样工作,所以我想编写一些我自己的 javascript,但与原型验证集成。
有谁知道我该怎么做?
我在搜索中没有发现任何有用的东西,而且我不是很精通原型(主要使用 jQuery)。
我想为一些自定义字段制作一个简单的 url 验证器。我尝试了默认的(添加类validate-url
或 validate-clean-url
输入) - 但这些并不像我希望的那样工作,所以我想编写一些我自己的 javascript,但与原型验证集成。
有谁知道我该怎么做?
我在搜索中没有发现任何有用的东西,而且我不是很精通原型(主要使用 jQuery)。
您可以使用创建自己的自定义验证函数
<script type="text/javascript">
var theForm = new VarienForm('theForm', true);
Validation.add('validate-must-be-baz','You failed to enter baz!',function(the_field_value){
if(the_field_value == 'baz')
{
return true;
}
return false;
});
</script>
见 http://magento-quickies.tumblr.com/post/6579512188/magento-custom-form-validation
或者
if(Validation) {
Validation.addAllThese([
[
'validation-myown',
'Please insert proper word',
function(v,r){ return v.indexOf('valid')==-1?false:true }
],
[ ]
])
}
见http://blog.baobaz.com/en/blog/custom-javascript-form-validators
在 /js/prototype/validation.js (或您拥有的此类文件的文件)中。您有一个包含以下数组的部分:
classname :message on fail : function(v){your check return true/false;} 检查 v 是否有效
这部分在 420 行附近。
您可以将验证添加到此数组或修改 validate-url 如下所示:
['validate-url', 'Please enter a valid URL. Protocol is required (http://, https:// or ftp://)', function (v) {
v = (v || '').replace(/^\s+/, '').replace(/\s+$/, '');
return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))(\.[A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))*)(:(\d+))?(\/[A-Z0-9~](([A-Z0-9_~-]|\.)*[A-Z0-9~]|))*\/?(.*)?$/i.test(v)
}],
编辑:RS通过展示如何在不更改js文件的情况下进行回答可能会更好。更方便 ;)