2016-05-27 6 views
1

Ich habe eine Aufgabe, die ich einfach beschreiben kann: Ich habe ein Dropdown mit, sagen wir, 3 Positionen. Und ein Feld.Dynamisch ändern Petersilie Regeln für ein Feld

  • Wenn Option0 ausgewählt ist, ist keine Validierung für ein Feld erforderlich.
  • Wenn Option1 ausgewählt ist, sollte das Feld numerisch sein.
  • Wenn Option2 ausgewählt ist, sollte das Feld mit einem Regex übereinstimmen.

Wie kann ich dieses Verhalten mit Parsley erreichen?

Die einzige Art, wie ich jetzt gefunden ist eine ganze Petersilie, ändern HTML entfernen und reinit es dann:

$(myDropDown).change(function() { 
    $('form').parsley().destroy(); 

    var input = $(this).parent().find(".my-cool-input"); 
    //changing input attributes based on selected value 

    //reinitialize parsley 
    $('form').parsley(); 
}); 

Aber ich hier globalen Zustand der ganzen Petersilie ändern, während ich nur eine Feldüberprüfung ändern möchten.

Eine andere Option ist das Schreiben eines benutzerdefinierten Validators. Ich möchte jedoch die Standard-E-Mail- und andere Validierungsregeln und -nachrichten, wenn möglich, wiederverwenden.

Antwort

2

Ändern Sie einfach die Feldattribute und trigger('input') darauf.