Frage

Ich habe folgendes Szenario HTML:

<div>
    <input id="txt0" type="text" /><input type="checkbox" id="chk0" /></div>
<div>
    <input id="txt1" type="text" /><input type="checkbox" id="chk1" /></div>
<!-- etc -->
<div>
    <input id="txtN" type="text" /><input type="checkbox" id="chkN" /></div>

Wenn Checkbox N aktiviert ist, dann Textbox N ist ein Pflichtfeld.

Ich habe gerade arbeitet mit einer (der?) jQuery Validierung gestartet Modul und ich versuche, herauszufinden, wie diese Validierung zu erreichen, die nur, dass etwas komplexer als die Beispiele scheint.

Konzeptionell ich glaube, ich möchte eine CSS-Klasse auf meine Kontrollkästchen hinzuzufügen, dann addClassRules verwenden, um eine benutzerdefinierte Regel hinzuzufügen. Allerdings ist die Herausforderung, wie das entsprechende Textfeld für jede Option angeben.

Meine HTML erzeugt ASP.NET MVC, so konnte ich die JavaScript dynamisch generieren, die eine Regel für jede Option angeben würden, aber dies scheint ein wenig langatmig.

War es hilfreich?

Lösung 2

Gelöst, mit dem folgenden Ansatz ...

Ich aktualisiert meine HTML eine bestimmte CSS-Klasse auf meine Textfelder (amount_text_box) aufzunehmen, und verwendet, um die folgende jQuery:

$.validator.addClassRules("amount_text_box", { required: function(element) {
    var chkId = element.id.replace(/txt/, "#chk");
    return $(chkId)[0].checked;
}

Eine Einschränkung ist, dass dies nur Feuer, wenn der Fokus das Textfeld läßt - im Idealfall würde die Regel auch ausgelöst, wenn die Checkbox angeklickt wurde

.

Andere Tipps

Ich habe eine ähnliche Sache, Richard getan. Obwohl ich stoppped der benutzerdefinierten Regel kurz. Mein Ansatz war es, die Klasse ‚erforderlich‘ an den Eingang Tag hinzuzufügen.

In Bezug auf Ihre Wähler, könnten Sie nicht Ihre Textbox haben und geben Sie „Share“ eine Klasse eindeutig zu ihnen sagen Class0 .. classN und wählen Sie einen Eingang innerhalb dieser Klasse?

Güte,

Dan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top