Meldung im Dropdown Menü Nr.2 erzeugen
Chris
- javascript
0 wahsaga
Hallo, ich habe ein Problem und im Forum keine geeignete Lösung gefunden. Mit folgender Funktion überprüfe ich ob im ersten Dropdown Menü etwas ausgewählt wurde, ansonsten gibts eine Meldung.
function chkFormular()
{
if(document.doppelmenue.stage1.value == "") {
alert("Bitte wählen Sie a aus");
document.doppelmenue.stage1.focus();
return false;
}
}
Mein Problem liegt nun darin, dass ich dies gern für das zweite Menü genauso machen würde, das zweite Menü aber je nach Auswahl im ersten Menü verschiedene Einträge liefert.
<!--Dropdown Menü a-->
<tr><td colspan=6>
<form name="doppelmenue" onSubmit="return chkFormular()">
<p><center><b>1. </b><select name="stage1" size="1" onChange="redirect(this.options.selectedIndex)">
<option selected value="">a auswählen </option>
<option value="1">1</option>
<option value="2">2</option>
</select></center></tr></td>
<!--Dropdown Menü b-->
<tr><td colspan=6><center><br><b>2. </b>
<select name="stage2" size="1">
<option selected value="">b auswählen </option></center>
</select>
</td></tr>
<script>
<!--
var groups=document.doppelmenue.stage1.options.length
var auswahl=new Array(groups)
for (i=0; i<groups; i++)
auswahl[i]=new Array()
auswahl[1][0]=new Option("")
auswahl[1][1]=new Option("1")
auswahl[1][2]=new Option("2")
auswahl[2][0]=new Option("")
auswahl[2][1]=new Option("3 ")
auswahl[2][2]=new Option("4")
var temp=document.doppelmenue.stage2
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<auswahl[x].length;i++){
temp.options[i]=new Option(auswahl[x][i].text,auswahl[x][i].value)
}
temp.options[0].selected=true
}
function auswaehlen(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
Wie kann ich es nun erreichen, dass der Anwender bei Nichtauswahl im zweiten Menü, also bei auswahl[1][0]=new Option("") eine Meldung bekommt?
Vielen Dank im voraus!
Gruß
Chris
hi,
Hallo, ich habe ein Problem und im Forum keine geeignete Lösung gefunden. Mit folgender Funktion überprüfe ich ob im ersten Dropdown Menü etwas ausgewählt wurde, ansonsten gibts eine Meldung.
function chkFormular()
{
if(document.doppelmenue.stage1.value == "") {
du fragst hier direkt die eigenschaft value eines selectfeldes ab - ich wage zu bezweifeln, dass das browserübergreifend funktioniert.
<select> hat eigentlich gar keine eigenschaft value.
stattdessen müsstest du erstmal den index rausfinden, der selektiert wurde, und dann dessen value (also der entsprechenden <option>) abfragen.
aber generell müsste selecetIndex doch dein problem schon lösen können, denke ich.
immer, wenn dieser gleich 0 ist (also das select-feld noch auf dem ersten eintrag steht), hat noch keine auswahl stattgefunden - da bei dir ja, so wie ich das sehe, als erste option immer das "bitte auswählen" steht.
gruss,
wahsaga