我想爲一些自定義字段做一個簡單的URL驗證器。我嘗試了默認設置(將類validate-url
或validate-clean-url
添加到輸入中) - 但是這些效果並不盡如人意,所以我想寫一些自己的JavaScript,但是與原型驗證集成在一起。如何添加自定義驗證到Magento原型
有沒有人有任何想法我可以做到這一點?
我沒有在我的搜索中找到任何有用的東西,而且我也不是Prototype-savy(主要用jQuery工作)。
我想爲一些自定義字段做一個簡單的URL驗證器。我嘗試了默認設置(將類validate-url
或validate-clean-url
添加到輸入中) - 但是這些效果並不盡如人意,所以我想寫一些自己的JavaScript,但是與原型驗證集成在一起。如何添加自定義驗證到Magento原型
有沒有人有任何想法我可以做到這一點?
我沒有在我的搜索中找到任何有用的東西,而且我也不是Prototype-savy(主要用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(或您擁有的這種類型的文件)。你有數組的部分:
類名:在消息失敗:功能(五){支票返回的true/false;}檢查v是有效還是無效
這部分是圍繞線420 。
您可以將驗證添加到這個陣列或修改驗證的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文件做。更方便;)