jquery validation add-Eingänge erforderlich, dynamisch

Ich bin derzeit mit dem bassistance jquery-validation oder die jqueryvalidation plugin(Sie nannte es) und ich habe es die Prüfung einer form etwa so:

if($.fn.validate) {
        $("#frmNewOrder").validate({
            rules: {
                txtAmount: {
                    required: true,
                    digits: true
                },
                ddlAccount: {
                    required: true
                },
                ddlBank: {
                    required: true
                }
            }
        });
    }

Nun, je nach der Menge, die ich brauche, um zu verlangen oder nicht ein zusätzliches Feld mit einer dropdownlist und je nach dropdownlist einem anderen text-Eingabe. so ist es wie:

 if($('#txtAmount').val() >= 10000){
     //add ddlReason required
 }

 if($('#ddlReason').val() == 'o'){
     //add txtReason required
 }

Ich habe versucht, indem Sie die css-Klasse "notwendig" wie die anderen Felder, aber ich nehme Sie, wenn Sie nicht innerhalb der Regeln, dann funktioniert es nicht? Ich habe versucht, hinzufügen von Regeln wie dieser:

 $( "#ddlReason" ).rules( "add", {
        required: true});

und das funktioniert auch nicht. irgendwelche Vorschläge?

EDIT: Hier der link der jquery Validierung, die ich verwende. wenn ich Regeln außerhalb, es gibt diese Fehlermeldung:

Uncaught TypeError: Cannot read property 'settings' of undefined 

on line 124:

var settings = $.data(element.form, 'validator').settings;

und über die Vorschläge, die ich gesehen habe, in anderen Orten habe ich dies getan, das ist, was den Fehler verursacht:

var defaultrules = {
    txtAmount: {
        required: true,
        digits: true
    }
}

if($.fn.validate) {
    $("#frmNewOrder").validate();
    addRules(defaultrules);
}

EDIT 2: hier ist das html-markup, hoffe es hilft.

<form id="frmNewOrder" name="frmNewOrder" action="" method="post">
<label>Amount</label>
<input type="text" name="txtAmount" id="txtAmount" class="required" />
<button id="calculate" type="button">Calculate</button>
<div id="dvreason" style="display:none;">
    <select id="ddlReason" name="ddlReason">
         <option></option>
         <option value="i">Option 1</option>
         <option value="o">Other</option>
    </select>
    <div id="dvother" style="display:none">
       <label>Other reason</label>
       <input type="text" name="txtOther" id="txtOther" />
    </div>
</div>
<input type="submit" name="send" id="send" value="Send" />
</form>
  • Können Sie nach ein paar HTML mit JS in Zusammenhang? Vielleicht steckte es in einen jsfiddle
  • Ich habe eine harte Zeit hinzufügen der Validierung auf jsfiddle lol, wenn ich es herausfinden werde ich es posten
  • Nein, natürlich können Sie class="required" oder .rules('add') statt innerhalb rules Erklärung in .validate(). Es muss etwas anderes falsch mit Ihrem code. Genug code für den Bau eine funktionierende demo. Alle relevanten jQuery und HTML.
  • Ich habe gerade einige mehr code und einen link, der die Validierung der js-Datei, die ich verwende.
  • Immer noch nicht genug sehen hier den code für die Neuerstellung Ihres Problems. Wo ist das HTML-markup?
  • Habe ich nur noch die html-markup, und nur als persönliche Meinung, ich sehe es wirklich unfair niederstimmen meine Frage und Wunsch zu haben, es geschlossen zu sehen, wie ich eine Menge von Infos, die mehr als andere haben, wenn gefragt wird. Und ich immer alle meine Fragen gezeigt, alle meine Bemühungen und die meisten meiner code. Nicht mit dem Finger, weil ich nicht weiß, wer um Punkt auf, mussten aber lassen Sie es bekannt sein.
  • Wenn Sie ein problem mit der jQuery Validierung, können Sie die debug-Eigenschaft auf true und sehen, ob man irgendwelche zusätzlichen Informationen. Ich erhielt die gleiche Fehlermeldung, aber mein Fehler war das anders, ich war nicht der Aufruf von "validate" - Methode auf die form sondern auf das modale Fenster. Nach dem ändern, dass es funktioniert.

InformationsquelleAutor Andres | 2013-10-12
Schreibe einen Kommentar