Frage

Ich bin derzeit mit der Validate-Plugin ein Formular (unter Verwendung von ASP.Net Kontrollen) zu validieren. Ich habe die Regeln aus den Standard-Setup innerhalb der form.validate Methode dh gezupft:

    $("form").validate({

    rules: {
        ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0: "required"
    }

});

Ich habe jetzt diese in verschiedenen Funktionen, die die ruless hinzufügen je nachdem, welche Schaltfläche geklickt wird. Dies funktioniert für Textfelder in Ordnung, aber für einen Radiobuttonlist, wenn das Plugin versucht, die Regel hinzuzufügen gibt es eine Fehlermeldung, dass das Element ist nicht definiert.

function addRuleSet() {
    $("#ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0").rules("add", { required: true });

}

Ich denke, das Problem ist, dass ich den Namen Attribut ist mit (asp $ in setzt), um die Gruppe zu definieren, die der Radio-Buttons als eine ID eher gehört (aber in den statischen Einstellungen werden alle Elemente definiertem den Namen verwenden ich bin nicht sicher zuschreiben. auf jeden Fall wie man sich eine Regel für eine Gruppe von zugehörigen Optionsfeldern hinzufügen, würde jede Beratung geschätzt.

PS Ich brauche wirklich die Radiobuttonlist und nicht die einzelnen Radiobuttons nennen.

War es hilfreich?

Lösung

Sie können auch eine Regel, indem Klassen auf das Element anzuwenden. Zum Beispiel, wenn Sie die Klasse „erforderlich“ an einen Eingang geben, dann gilt die erforderliche Regel auf dieses Element. Um dies zu tun, dann würden Sie die CssClass Eigenschaft auf dem Steuerelement verwenden. Sie müssen möglicherweise mit Verbindung Kontrollen experimentieren, wie Radiobuttonlist, um sicher zu stellen, dass die Klasse erzeugen die Eingabeelemente angelegt wird, die nicht der Behälter. Wenn Sie Probleme damit haben, eine Möglichkeit zu tun, wäre es die Klasse hinzuzufügen auf einem Wähler mit jQuery, nachdem die Seite geladen basiert.

<asp:RadioButtonList id="RadList" runat="server" CssClass="required">
   ...
</asp:RadioButtonList>

oder

<script type="text/javascript">
     $(function() {
          $(':radio').addClass('required');
          $('form').validate();
     });
</script>

Für eine komplexe, klassenbasierte Regel können Sie neue Regeln hinzufügen addClassRules verwenden.

<script type="text/javascript">
    $(function() {
        $.validator.addClassRules({
             range0to10: {
                  range: [0, 10]
             },
             name: {
                  minlength: 2,
                  required: true
             }
        });
        $('form').validate();
    });
</script>

<form ... >
<input type="text" name="rating" id="rating" class="range0to10" />
<input type="text" name="firstName" id="firstName" class="name" />
<input type="text" name="lastName" id="lastName" class="name" />
</form>

Andere Tipps

Nach Tagen des mir das verrückt fahren, die Frage zu stellen hatte ich denken, wie das Element zu erhalten Rückkehr richtig, und ich kam in dieser Methode der Referenzierung staright weg, die ich es erlaubt, zu tun:

$("input:radio[name='ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0']").rules("add", { required: true });
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top