Announcement

Collapse
No announcement yet.

Default Selected Listbox Option unter IE

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Default Selected Listbox Option unter IE

    Hallo,

    ich bin auf ein Problem gestoßen dass mich fast zum verzweifeln bringt
    Ich möchte gern prüfen ob bei einer selectbox eine Auswahlmöglichkeit vorausgewählt ist (defaultSelected) und wenn ja hätte ich ihren value gern gelesen.

    Ich habe dafür eine kleine js-Funktion geschrieben die unter Firefox wunderbar funktioniert:

    Code:
    function isDefaultSelected(select){
    
    for(var i = 0 ; i <select.length; i++){
    if(select.options[i].defaultSelected == true){
    return select.options[i].value;
    }
    }
    
    return false;
    }
    den "select"-Parameter übergebe ich folgendermaßen:

    Code:
     var temp = document.getElementById(child);
        var result = isDefaultSelected(temp);
    dies funtioniert dummerweise unter ie 7 bzw.8 nicht.

    Hier ein HTML-Sourcecode-Ausschnitt einer Beispielseite:

    Code:
    <select id="Maschinengruppen_ID" name="Maschinengruppen_ID">
    
    	<option class="sub_832" value="115">Montage 1</option>
    	<option class="sub_832" value="116" selected="selected">Prüfstand</option>
    	<option class="sub_837" value="9">Drehzelle</option>
    	<option class="sub_837" value="26">Linie 1</option>
    	<option class="sub_846" value="28">Montage 2</option>
    	<option class="sub_887" value="33">Linie 3</option>
    	
    </select>
    was mache ich denn bitte falsch?

    Vielen Dank im Voraus

  • #2
    Moin,

    hab's mal nachgebaut und bei mir funktioniert das Ganze einwandfrei, auch im IE. Poste doch bitte mal den gesamten Code, sodass man sehen kann wann du was wie wo verwendest.

    Gruß,
    M

    Comment


    • #3
      Hi,

      eigentlich will ich voneinander abhängigen Selectlisten mittels js realisieren. Dazu habe folgendes Skript zusammengebaut:


      Code:
      function makeSublist(parent, child, isSubselectOptional, childVal)
      {
          $("body").append("<select style='display:none' id='"+parent+child+"'></select>");
          $('#'+parent+child).html($("#"+child+" option"));
          
          var parentValue = $('#'+parent).attr('value');
      
          $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
      
          if(isSubselectOptional){
              $('#'+child).prepend("<option value='NULL'>  </option>");
          }
      
          var temp = document.getElementById(child);
          var result = isDefaultSelected(temp);
      
          isMGDefaultSelected();
          isAPDefaultSelected();
      
          /*var result = false;
      
          if(child == "Maschinengruppen_ID"){
             result = isMGDefaultSelected();
          } else if (child == "Arbeitsplatz_ID"){
             result = isAPDefaultSelected();
          }*/
      
          if(result){
              childVal = result;
          }
      
          childVal = (typeof childVal == "undefined")? "" : childVal ;
          $("#"+child+' option[@value="'+ childVal +'"]').attr('selected','selected');
      
          $('#'+parent).change(
      
              function()
              {
                  var parentValue = $('#'+parent).attr('value');
      
                  $('#'+child).html($("#"+parent+child+" .sub_"+parentValue).clone());
      
                  if(isSubselectOptional){
                      $('#'+child).prepend("<option value='NULL'>  </option>");
                  }
      
                  $('#'+child).trigger("change");
                  $('#'+child).focus();
              }
      
              );
      }
      
      function isDefaultSelected(select){
      
          for(var i = 0 ;  i <select.length; i++){
              if(select.options[i].defaultSelected == true){
                  return select.options[i].value;
              }
          }
             
          return false;
      }
      
      function isMGDefaultSelected(){
          for(var i = 0 ;  i < document.pmForm.Maschinengruppen_ID.length; i++){    
              if(document.pmForm.Maschinengruppen_ID.options[i].defaultSelected == true){
                  alert(document.pmForm.Maschinengruppen_ID.options[i].text);
                  //return document.pmForm.Maschinengruppen_ID.options[i].value;
              }
          }
      
          return false;
      }
      
      function isAPDefaultSelected(){
          for(var j = 0 ;  j < document.pmForm.Arbeitsplatz_ID.length; j++){
              if(document.pmForm.Arbeitsplatz_ID.options[j].defaultSelected == true){
                  alert(document.pmForm.Arbeitsplatz_ID.options[j].text);
                  //return document.pmForm.Arbeitsplatz_ID.options[j].value;
              }
          }
      
          return false;
      }
      
      $(document).ready(function(){
          makeSublist('Maschinengruppen_ID','Arbeitsplatz_ID', true, "NULL");
          makeSublist('Einsatzort_ID','Maschinengruppen_ID', true, "NULL");
      });
      p.s. Ich benutze jQuery 1.2.6

      Es sollen damit drei Selectlisten: "Einsatzort" --> "Maschinengruppe" --> "Arbeitsplatz" voneinander abhängig gemacht werden. Hier noch der HTML-Code der drei Selectlisten:


      Code:
      <select id="Einsatzort_ID" onchange="this.form.AutoCompleteEinsatzort.value=this.form.Einsatzort_ID[this.selectedIndex].text" name="Einsatzort_ID">
      
      	<option value="832" selected="selected">EO21</option>
      	<option value="837">OE22</option>
      	<option value="846">OE23</option>
      	<option value="887">TEF6</option>
      	
      </select>
      
      <select id="Maschinengruppen_ID" name="Maschinengruppen_ID">
      
      	<option class="sub_832" value="115">Montage 1</option>
      	<option class="sub_832" value="116" selected="selected">Prüfstand</option>
      	<option class="sub_837" value="9">Drehzelle</option>
      	<option class="sub_837" value="26">Linie 1</option>
      	<option class="sub_846" value="28">Montage 2</option>
      	<option class="sub_887" value="33">Linie 3</option>
      	
      </select>
      
      <select id="Arbeitsplatz_ID" name="Arbeitsplatz_ID">
      	<option class="sub_115" value="68">Personen</option>
      	<option class="sub_115" value="70">Werkzeugschrank</option>
      	<option class="sub_116" value="81" selected="selected">Werkbank 3</option>
      	<option class="sub_116" value="82">Werkbank 4</option>
      	<option class="sub_9" value="76">Werkbank 1</option>
      	<option class="sub_9" value="77">Werkbank 5</option>
      	<option class="sub_26" value="67">RM 517</option>
      	<option class="sub_28" value="3">42/01</option>
      	<option class="sub_28" value="4">42/02</option>
      	<option class="sub_33" value="23">Werkzeugvoreinstellung</option>
      	<option class="sub_33" value="84">Waschanlage</option>
      	
      </select>
      Das js-Skript funktioniert unter Firefox richtig. Im IE bekomme bei jeder Option immer false zurück wenn ich die defaultSelected-Eigenschaft des jeweiligen Option-Elements abfrage!!

      Danke

      Comment

      Working...
      X