Unterschied zwischen value="" und kein value beim SELECT Feld?
Chris
- javascript
Hallo,
folgendes Problem:
Mein Script soll mir den Wert eines select-one Feldes zurückgeben, gibt es kein Value, dann soll es statt dessen den Text ausgeben. So weit, so gut.
Aber:
Wenn ich explizit ein value="" angebe, soll eben NICHT der Text ausgelesen werden. Im Prinzip soll es eben so funktionieren, wie PHP mir die Variablen übermittelt.
Leider funzt auch ein (myIndex.value !== "") oder ein isSet() in javascript nicht, zumindest habe ich bisher nichts vergleichbares gefunden.
Hier ein Beispiel zum Testen.
<html>
<head>
<script>
function checkForm() {
var myIndex = document.formular.mySelect.options[document.formular.mySelect.selectedIndex];
myValue = (myIndex.value) ? myIndex.value : myIndex.text;
alert("Gewählt: "+myValue);
}
</script>
</head>
<body>
<form name="formular" onSubmit="checkForm(); return false;">
<select name="mySelect">
<option value="" selected>Bitte wählen</option>
<option value="Typ A">A</option>
<option>B</option>
</select>
<input type="submit" value="Abschicken">
</form>
</body>
</html>
Bitte keine Workarounds mit if(myValue == "Bitte wählen") ... oder ähniches.
Vielen Dank
Chris
Hallo,
folgendes Problem:
Mein Script soll mir den Wert eines select-one Feldes zurückgeben, gibt es kein Value, dann soll es statt dessen den Text ausgeben. So weit, so gut.
Aber:
Wenn ich explizit ein value="" angebe, soll eben NICHT der Text ausgelesen werden. Im Prinzip soll es eben so funktionieren, wie PHP mir die Variablen übermittelt.
Mach mal ein alert(typeof myIndex.value) dazu und du merkst man kann es offensichtlich nicht unterscheiden, da ein option immer ein value Attribut hat.
Struppi.
Hi Struppi,
du merkst man kann es offensichtlich nicht unterscheiden, da ein option immer ein value Attribut hat.
Hmm, ist aber schade, dass da immer ein String erzeugt wird.
Danke für den Tipp.
Will aber trotzdem noch nicht aufgeben. Es muss doch irgend wie möglich sein. Jeder Browser macht doch eigentlich das gleiche, wenn das Formular gesendet wird (nicht das PHP, wie ich vorhin irreführender Weise geschrieben habe).
Ciao
Chris