8

いくつかのカスタム フィールド用の単純な URL バリデータを作成したいと考えています。validate-urlデフォルトのもの(クラスを追加するか 、入力に追加する)を試しましたvalidate-clean-urlが、これらは思い通りに機能しないため、独自のjavascriptをいくつか書きたいのですが、プロトタイプの検証と統合します。

どうすればこれを行うことができるか、誰にもアイデアがありますか?

検索で役立つものは何も見つかりませんでした。また、プロトタイプにあまり精通していません (主に jQuery を使用していました)。

4

2 に答える 2

22

を使用して独自のカスタム検証関数を作成できます

<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を参照してください

于 2013-02-22T15:40:04.067 に答える
4

/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ファイルを変更せずに行う方法を示すことで、おそらくより良い回答をしました。もっと便利 ;)

于 2013-02-22T15:39:12.320 に答える