messmar
Erfahrenes Mitglied
Guten Abend zusammen!
ich habe eine gruppe von Checkboxen, die ich über den Parent-Fieldset anspreche und frage ab, ob mindestens eine gecheckt ist oder nicht... wenn Ja, dann blinde ich die Fehlermeldung aus.
Code:
Da ich mehrere Fälle auch habe und zwar mit Radio buttons, möchte ich das ganze über eine private Methode mit Parametern:
machen und anschließend die Methode: clean(param1, param2); wobei der Parameter param2 - im Falle der Checkboxen - optional ist.... wird aber für die Radio buttons gebraucht und funkt. einwandfrei.
Private Methode:
Hinweis: der folgende Fall mit: else ist für die Radio Buttos und funkt. bitte einfach ignorieren:
Problem:
Wenn ich aber die Methode: clean() innerhalb der eventHandler:
anhand bind aufrufe, dann funkt. nicht und ich erhalte ne Fehlermeldung...
wobei, wenn ich es ohne die Methode: clean('.checkOF05'); aufrufe, sondern direkt:
dann funktioniert.
P.S das ganze ist innerhalb eines Plugins eingebettet.
der HTML Code:
Der letzte label
dient dazu den Fehler zu zeigen oder leer, wenn eine der Checkboxen aktiviert ist.
Wäre klasse, wenn Jemand ne Idee hätte oder mir helfen/mich auf meinen Denkfehler aufmerksam machen könnte...
Vielen Dank und Gruß
Messmar
ich habe eine gruppe von Checkboxen, die ich über den Parent-Fieldset anspreche und frage ab, ob mindestens eine gecheckt ist oder nicht... wenn Ja, dann blinde ich die Fehlermeldung aus.
Code:
Code:
$(".checkOF05, .checkOF11, .checkOF13").bind({
click:function(){
if($(this).attr('class') === 'checkOF05'){
if($(".checkOF05 input:checked").length <= 0){
$('.checkOF05').next().html(msg);
}else{
$('.checkOF05').next().html('');
}
}
if($(this).attr('class') === 'checkOF11'){
if($(".checkOF11 input:checked").length <= 0){
$('.checkOF11').next().html(msg);
}else{
$('.checkOF11').next().html('');
}
}
....
});
Da ich mehrere Fälle auch habe und zwar mit Radio buttons, möchte ich das ganze über eine private Methode mit Parametern:
Code:
clean(param1, param2) {....}
machen und anschließend die Methode: clean(param1, param2); wobei der Parameter param2 - im Falle der Checkboxen - optional ist.... wird aber für die Radio buttons gebraucht und funkt. einwandfrei.
Private Methode:
Code:
function clean(El, elErr){
if(!elErr) elErr = null;
alert('El: ' + El + 'elErr: ' + elErr);
if(elErr === null)
El.next().html('');
else
if(El.is(':checked')) El.nextAll(elErr).html('');
}
Hinweis: der folgende Fall mit: else ist für die Radio Buttos und funkt. bitte einfach ignorieren:
Code:
else
if(El.is(':checked')) El.nextAll(elErr).html('');
Problem:
Wenn ich aber die Methode: clean() innerhalb der eventHandler:
Code:
click:function(){...}
Fehler: TypeError: El.next is not a function
Quelldatei: http://localhost:portxxx/jQeuryPlugins/radioAndCheckboxes/js/jquery.validateElem.minified.js
wobei, wenn ich es ohne die Methode: clean('.checkOF05'); aufrufe, sondern direkt:
Code:
$('.checkOF05').next().html('')
dann funktioniert.
P.S das ganze ist innerhalb eines Plugins eingebettet.
der HTML Code:
HTML:
<fieldset class="checkOF05">
<input type="checkbox" name="user.CustomAttribute.OF05a" value="" class="radio_01" />
<label class="labelTxt_01">Patisseries</label>
<input type="checkbox" name="user.CustomAttribute.OF05b" value="" class="radio_02" />
<label class="labelTxt_01">Chocolats</label>
<input type="checkbox" name="user.CustomAttribute.OF05c" value="" class="radio_02" />
<label class="labelTxt_01">Epicerie fine</label>
<input type="checkbox" name="user.CustomAttribute.OF05d" value="" class="radio_02" />
<label class="labelTxt_01">Vins, Champagnes</label>
<input type="checkbox" name="user.CustomAttribute.OF05e" value="" class="radio_03" />
<label class="labelTxt_02">Plats préparés</label>
</fieldset><label class="lbErr"></label>
Der letzte label
HTML:
<label class="lbErr"></label>
Wäre klasse, wenn Jemand ne Idee hätte oder mir helfen/mich auf meinen Denkfehler aufmerksam machen könnte...
Vielen Dank und Gruß
Messmar
Zuletzt bearbeitet: