Datenschutzerklärung

Problem mit Auswahlfeld

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Javascript-Forum /

Problem mit Auswahlfeld

  Beitrag schreiben
Autor
Beitrag Seiten: 1
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
Erstmal vorneweg, vielen Dank für Hilfe bei meinem anderen Problem, aber das hier bekomm ich einfach nicht hin.

Ich will doch nur, dass das Auswahlfeld den Wert annimmt der an ihn übergeben wird. Im Firefox haut das auch ganz toll hin. Der IE macht jedoch ab und an einige Macken. Der sagt dann immer "Fehlerie selected Eigenschaft konnte nicht festgelegt werden."

Code:

for (var i=0; i<document.form1.musik.options.length; i++){ 
   if (document.form1.musik.options[i].value == sound){
        document.form1.musik.options[i].selected=true; 
   }
  else{
        document.form1.musik.options[i].selected=false; 
   }{

Wie würdet ihr sowas schreiben, oder hat mein IE vielleicht nur ne Macke??


25.07.2006 18:36:48
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Hallo,
auf dem ersten Blick erkenne am Ende }{, kann es sein das es }} sein sollte ?
Ansonsten kann die Sache nicht richtig funktionieren, da nach dem setzen von selected=true die Schleife weiterläuft und danach selected=false ausgeführt werden könnte, was zu Problemen führen könnte.
Ich würde die Schleife nach selected=true beenden.


_______________________________________
mfg
Thomas Mell

www.validome.org

25.07.2006 18:59:19
  Zitieren
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
Danke für die schnelle Antwort.

Das { nach dem Ende hat nix zu sagen, da ist bei Copy&Paste was schief gegangen.

Hab es mal mit einer While-Schleife probiert, damit hat es keine Änderung gegeben. Danach hab ich es mal get und setAttribute versucht und siehe da, es funktioniert.

Code:

var i=0;
  var gefunden = false;
  while(i<document.form1.musik.options.length && gefunden == false){
      if (document.form1.musik.options[i].getAttribute('value') == sound){
          document.form1.musik.options[i].setAttribute('selected',true);
      gefunden = true;
       }
  i++;
  }

Jedoch setz der Firefox nun das Feld nicht mehr. Und es gibt auch keine Fehlermeldung


25.07.2006 19:16:41
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Hallo,
folgendes Beispiel funktioniert in jeden Browser:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
      function check(o)    {
        var opt = document.form1.select.options;
        for(var i=0; i < opt.length; i++){
          if(opt[i].value == o.value){
            opt[i].selected=true;
                break;
            }
        }
      }
    </script>
  </head>
 
  <body>
    <form name="form1" method="post" action="">
      <input type="button" value="test1" onclick="check(this)"><br>
      <input type="button" value="test2" onclick="check(this)"><br>
      <input type="button" value="test3" onclick="check(this)"><br>
      <input type="button" value="test4" onclick="check(this)"><br>
      <input type="button" value="test5" onclick="check(this)"><br>
      <input type="button" value="test6" onclick="check(this)"><br>
   
      <select name="select">
        <option value="test1">test1</option>
        <option value="test2">test2</option>
        <option value="test3">test3</option>
        <option value="test4">test4</option>
        <option value="test5">test5</option>
        <option value="test6">test6</option>
      </select>
    </form>
  </body>
</html>


_______________________________________
mfg
Thomas Mell

www.validome.org

25.07.2006 19:56:01
  Zitieren
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
Ups

Beitrag geändert von Glaendi (25.07.2006 20:27:17)


25.07.2006 20:25:39
  Zitieren
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
Und warum geht meins nicht

Der Fehler in dieser Zeile:

Code:

document.form1.musik.options[i].setAttribute('selected',true)

geht im IE

Code:

document.form1.musik.options[i].selected=true;

geht im Firefox

oder jeweils nur mit opt[i].

Beitrag geändert von Glaendi (25.07.2006 20:30:51)


25.07.2006 20:26:20
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Hmm, welchen Dokumententyp verwendest Du? Firefox verhält sich je nach Typ unterschiedlich. Bei XHTML funktionieren einige ältere Objekte und Methoden nicht, vor allen jene die durch DOM ersetzt werden können.

_______________________________________
mfg
Thomas Mell

www.validome.org

25.07.2006 20:42:19
  Zitieren
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
<?php echo '<?xml version="1.0" encoding="iso-8859-1" ?>'; ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



Das wäre wohl eine Erklärung, aber wie bekomm ich  das hin, das es mit beiden funktioniert. Aber aber ja eigentlich doch nicht, im Firfox geht ja die ältere Variante

Beitrag geändert von Glaendi (25.07.2006 21:32:42)


25.07.2006 21:30:06
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Die alte Version funktioniert im IE, siehe mein Beispiel. Da sitzt der Fehler bestimmt ganz woanders - poste doch mal das ganze Dokument oder einen Link.

_______________________________________
mfg
Thomas Mell

www.validome.org

25.07.2006 21:51:25
  Zitieren
Glaendi
Mitglied

Registriert: 25.07.2006
Beiträge: 6
http://213.239.198.196/~gloem/okis/okis.php

Momentan sieht das so aus:

Code:

<!-- Funktion zum Setzen der Werte im Formular -->
    function felder_setzen(kneipe, strasse, nummer, telefon, handy, musik, sportsbar, x, y, nr){
      document.form1.name.value=kneipe;
      var opt = document.form1.strasse.options;
            for(var i=0; i < opt.length; i++){
        if(opt[i].value == strasse){
          opt[i].selected=true;
          break;
        }
      }
      document.form1.nummer.value=nummer;
      document.form1.telefon.value=telefon;
      document.form1.handy.value=handy;
      var opt = document.form1.musik.options;
            for(var i=0; i < opt.length; i++){
        if(opt[i].value == musik){
          opt[i].selected=true;
          break;
        }
      }
      document.form1.sportsbar.checked=sportsbar;
      document.form1.x.value=x;
      document.form1.y.value=y;      
      document.form1.id.value=nr;
    }

Wenn wir dann schon dabei sind, meine Zoom-Funtion für das SVG-Dokument funktioniert auch noch nicht richtig :-)


25.07.2006 22:02:48
  Zitieren
Seiten: 1   Beitrag schreiben
Wechsel zu

Die letzten Beiträge aus diesen Forum

Valid HTML 4.01