2013-02-22 11 views
8

いくつかのカスタムフィールドに対して簡単なURLバリデータを作成したいと思います。私はデフォルトのものを試しました(入力にはvalidate-urlまたはvalidate-clean-urlクラスを追加しました)。しかし、これらは私が好きなようには動作しません。したがって、私は独自のjavascriptを書きたいのですが、プロトタイプ検証と統合しました。Magentoプロトタイプにカスタム検証を追加する方法

私はこれをどのように行うことができますか?

私は検索に役立つものは何も見つかりませんでした。私はあまりPrototype-savyではありません(主にjQueryで動作しました)。

答えて

18

あなたは

<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://blog.baobaz.com/en/blog/custom-javascript-form-validators

参照 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 } 
    ], 
    [ ] 
]) 
} 

を参照してください。

4

/js/prototype/validation.js(または、この種のもののファイル)。

クラス名:あなたは配列のセクションを持っている上のメッセージが失敗します。function(V){小切手のリターンが真/偽;}チェックするためにvがこのセクションでは、ライン420の周りにある

有効であるかどう。

['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) 
     }], 

編集:

あなたはこの配列にあなたの検証を追加したり、ここで検証-のURLを変更することができますが、それがどのように見えるかであるRSは、JSファイルを変更せずに行う方法を示すことによって、より良いかもしれない答え。より便利;)

関連する問題