Hallo,
ich habe zurzeit ein Problem meinen Div Container offen zulassen.
Ich habe mehrere Checkboxen bzw Radiobuttons die ich optional ein und ausblenden kann mit jQuery.
Mein Problem ist jetzt folgendes:
Der User kann diese Felder einzeln öffnen und schließen und ein neuer Div mit Input Feldern öffnet sich. Das funktioniert auch ohne Probleme.
Zum Beispiel bei einer Optionalen Adresse gibt es eine Checkbox mit Ja dass dann ein Div mit Input Feldern öffnet (Adresse, Wohnort etc.)
Das Problem ist aber jetzt folgendes, nachdem der User das optionale Feld angeklickt hat und er auf weiter klickt wird der Wert in der Session mitgegeben das der Input auf checked ist.
Wenn der User aber wieder zurück geht, bleibt das Input Feld zwar checked aber der Div bleibt versteckt, erst wenn er wieder auf den Button klickt öffnet sich der Div, das Input Feld wird aber unchecked.
Code
Markup
ich habe zurzeit ein Problem meinen Div Container offen zulassen.
Ich habe mehrere Checkboxen bzw Radiobuttons die ich optional ein und ausblenden kann mit jQuery.
Mein Problem ist jetzt folgendes:
Der User kann diese Felder einzeln öffnen und schließen und ein neuer Div mit Input Feldern öffnet sich. Das funktioniert auch ohne Probleme.
Zum Beispiel bei einer Optionalen Adresse gibt es eine Checkbox mit Ja dass dann ein Div mit Input Feldern öffnet (Adresse, Wohnort etc.)
Das Problem ist aber jetzt folgendes, nachdem der User das optionale Feld angeklickt hat und er auf weiter klickt wird der Wert in der Session mitgegeben das der Input auf checked ist.
Wenn der User aber wieder zurück geht, bleibt das Input Feld zwar checked aber der Div bleibt versteckt, erst wenn er wieder auf den Button klickt öffnet sich der Div, das Input Feld wird aber unchecked.
Code
PHP-Code:
jQuery.fn.log = function(msg) {
console.log("%s: %o", msg, this);
return this;
};
$('.removeall').click(function() {
var remove = '';
$(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
$(this).parents('fieldset:eq(0)').find(':text').attr('value', remove);
});
$(".chzn-select").chosen();
$(".list").css("display", "none");
$('.checkboxes').on('change', function() {
//Variable
var $kids = $(this).parents().next('.list');
var $this = $(this);
var showOrHide = ($(this).val() == 1) ? true : false;
//IF Bedinungen
if($(this).is(':radio')) {
$($kids).slideToggle(showOrHide);
}
else {
$this.toggleClass('slideoption').prev().prop('disabled', $this.hasClass('slideoption'));
}
//Slide UP - Slide Down
if($(this).hasClass('slideoption')) {
$($kids).slideDown("fast");
//Slide Down Effect
}
else {
$($kids).slideUp("fast");
//Slide Up Effect
}
});
if ($('.checkboxes').attr('checked') == true) {
$(".list").css("display", "block");
$(this).click(function() {
$this.removeClass('slideoption').log("source") .prev().prop('disabled', $this.hasClass('slideoption'));
});
}
PHP-Code:
<fieldset class="bestellformular form-fieldgroup">
<legend>
<input class="checkboxes removeall" id="abweichendcheckbox" type="checkbox" name="abweichendcheckbox" value="ja" <?PHP echo $selectabweichendcheckbox;?> />
<label for="abweichendcheckbox">Abweichende Anschrift</label>
</legend>
<div id="abweichendeeinblendung" class="list order-element">
<div class="order-element order-element-txt optionsportierung-dialnr">
<!-- Eingabefeld "Abweichende Strasse" -->
<label for="abweichendstrasse">Straße *</label>
<input id="abweichendstrasse" type="text" name="abweichendstrasse" value="<?PHP echo $_SESSION['abweichendstrasse'];?>" />
</div>
<div class="order-element order-element-txt">
<!-- Eingabefeld "Abweichende Hausnummer" -->
<label for="abweichendhausnummer">Hausnummer *</label>
<input id="abweichendhausnummer" type="text" name="abweichendhausnummer" value="<?PHP echo $_SESSION['abweichendhausnummer'];?>" maxlength="32" />
</div>
<div class="order-element order-element-txt optionsportierung-dialnr">
<!-- Eingabefeld "Abweichende Postleitzahl" -->
<label for="abweichendplz">PLZ *</label>
<input id="abweichendplz" type="text" name="abweichendplz" value="<?PHP echo $_SESSION['abweichendplz'];?>" maxlength="5" />
</div>
<div class="order-element order-element-txt">
<!-- Eingabefeld "Abweichender Wohnort" -->
<label for="abweichendwohnort">Ort *</label>
<input id="abweichendwohnort" type="text" name="abweichendwohnort" value="<?PHP echo $_SESSION['abweichendwohnort'];?>" maxlength="32"/>
</div>
</div>
</fieldset>

Kommentar