2013-02-22 22 views
8

Ich möchte einen einfachen URL-Validator für einige benutzerdefinierte Felder machen. Ich habe versucht die Standardwerte (Hinzufügen der Klasse validate-url oder validate-clean-url an den Eingang) - aber diese funktionieren nicht ganz so, wie ich sie gerne, also möchte ich etwas von meinem eigenen Javascript schreiben, aber in die Prototyp-Validierung integriert.So fügen Sie eine benutzerdefinierte Validierung zum Magento-Prototyp hinzu

Hat jemand irgendwelche Ideen, wie ich das tun kann?

Ich habe nichts hilfreiches in meinen Suchen gefunden, und ich bin nicht sehr prototypisch (hauptsächlich mit jQuery gearbeitet).

Antwort

18

Sie Ihre eigene Validierungsfunktion

<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

oder

if(Validation) {  
    Validation.addAllThese([  
    [ 
     'validation-myown',  
     'Please insert proper word', 
     function(v,r){ return v.indexOf('valid')==-1?false:true } 
    ], 
    [ ] 
]) 
} 

siehe unter Verwendung erstellen können http://blog.baobaz.com/en/blog/custom-javascript-form-validators

4

In /js/prototype/validation.js (oder die Dateien für diese Art von Dingen, die Sie haben). Sie haben einen Abschnitt mit einer Reihe von:

classname: Nachricht auf fehlschlagen: function (v) {Ihr Scheck return true/false;} zu überprüfen, ob v gültig ist oder nicht

In diesem Abschnitt um die Linie 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) 
     }], 

Edit:: RS beantwortet vielleicht besser zeigen, wie zu tun, ohne Änderung der js Datei Ihre Validierung dieses Array oder modifizieren Validate-url hier ist, wie es aussieht hinzufügen

Sie können.. Bequem;)

Verwandte Themen