Ankündigung

Einklappen
Keine Ankündigung bisher.

jQuery - Div nach Session geöffnet lassen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jQuery - Div nach Session geöffnet lassen

    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
    PHP-Code:
                    jQuery.fn.log = function(msg) {
                        
    console.log("%s: %o"msgthis);
                        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'));
            
        });

    Markup
    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&szlig;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>

  • #2
    Ist doch klar, du überprüfst beim Laden der Seite nicht, welchen Wert die Checkbox hat. Den change-Handler der Checkboxen solltest du auch beim Laden der Seite ausführen (domready-Event).

    Kommentar


    • #3
      Du meinst
      PHP-Code:
      $(document).ready(function() {

                  
      jQuery.fn.log = function(msg) {
                          
      console.log("%s: %o"msgthis);
                          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'));
              
          });
      }
                  }); 
      den hat ich hier grad ausversehen vergessen gehabt mit zu kopieren. Der Code befindet sich in diesem

      Kommentar


      • #4
        Das ist mir klar, du führst den Handler darin aber nicht aus sondern bindest ihn nur ans change Event.

        Kommentar

        Lädt...
        X