• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Select ändern geht nur 1 mal

Harry4711

New member
Hallo Leute,

ich habe vor mit jquery ein select zu verändern.

Das geht auch genau 1 mal.

Warum geht das nicht immer ?

HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Unbenanntes Dokument</title>

<script src="js/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="js/jquery-ui.min.js" type="text/javascript"></script>

<script type="text/javascript">

$().ready(function() {

   $("#1").change(function() {


      if ( $('#1').val() === 'Ja' ) {
        $('#2 option').removeAttr('selected');
        $("#2 option[value='Unity']").attr('enabled',true);
        $("#2 option[value='Unity']").attr('selected',true);
        $("#2").attr('disabled',true);

        
      } else {
         $("#2").removeAttr('disabled');
         $("#2 option[value='Unity']").attr('selected',false);
         $("#2 option[value='Unity']").attr('disabled',true);
      }
   });
});
   
</script>
      
</head>

<body>

  <select id="1">
      <option value=" "> </option>
      <option value="Ja">Ja</option>
      <option value="Nein">Nein</option>
  </select>

  <select id="2">
      <option value=" "> </option>
      <option value="Unity">Unity</option>
      <option value="Intern">Intern</option>
      <option value="HSG">HSG</option>
      <option value="Zander">Zander</option>
      <option value="Gea">Gea</option>
  </select>
  
</body>
</html>

Das ist das was ich gerade habe.

Wenn ich nun Unity wähle geht es.
Wähle ich danach zB. Zander geht das auch wie es soll.
Aber wenn ich dann wieder auf Unity gehe ändert er #2 nicht so wie beim ersten mal.

Wo mache ich gerade meinen Denkfehler?


Gruß
Harry
 
Ist etwas ungünstig zu testen, weil wir nicht deine UI Einstellungen haben. Kannst du das als Fiddle einstellen, damit man sich dort den Fehler anschauen kann?
 
Genial deine Bitte war die Lösung.

Nach einstellen geht dort alles.

Ich schaue dämlich in den Monitor und suche warum es nun geht.
Und stelle fest wenn ich onDomready wähle habe ich das Problem.
Bei onload nicht.
Verstehen wieso das so ist tue ich nicht.
Da währe eine kleine Erklärung ganz nett.

Zum Testen: Edit fiddle - JSFiddle


Gruß
Harry
 
Das ist mal wieder ein Fall, wo jQuery komplizierter ist als normales DOM...

Hab' mal das meiste jQuery entfernt:
Code:
$(document).ready(function(){
	$("#1").change(function(){
		var dependent = document.getElementById("2");
		if (this.value === 'Ja'){
			dependent.value = "Unity"
			dependent.disabled = true;
		}
		else {
			dependent.disabled = false;
			dependent.value = " ";
			[].slice.call(dependent.options).forEach(function(option){
				if (option.value === "Unity"){
					option.disabled = true;
				}
			});
		}
	});
});

Edit fiddle - JSFiddle

@Dormilich: https://api.jquery.com/ready/
 
Zuletzt bearbeitet:
Zurück
Oben