webForumDet fria alternativet

Vill få onChange att ge standard-value

JavaScript

2 svar · 486 visningar · startad av tovelainen

Medlem sedan mars 2003137 inlägg
Frågan#1

Hej
Jag har ett javascript som man kan välja födelsedag - dag, månad, år i.
Delarna väljs i 3 dropdowns och sätts ihop till ett korrekt datum som läses in i en databas vid submit.

Jag får detta dock inte att funka. Hur jag än gör så måste besökaren ange födelsedag annars går ingen info in i databasen.

Jag måste alltså (antagligen!) skicka ett standardvärde även om ingen nuddat de 3 dropdownerna.

Nån som har nån idé?
Här kommer koden, blir supertacksam för förslag!!

<select name="mon" id="mon" onchange="onChangeBirthdayContent()">
	<option value="-">-</option>
	<option value="11">11</option>
	<option value="12">12</option>
</select>

<select name="dag" id="dag" onchange="onChangeBirthdayContent()">
	<option value="-">-</option>
	<option value="30">30</option>
	<option value="31">31</option>
</select>

<select name="ar" id="ar" onchange="onChangeBirthdayContent()">
	<option value="-">-</option>
	<option value="2009">2009</option>
	<option value="2010">2010</option>
	<option value="2011">2011</option>
</select>
<script type="text/javascript">
<!--
function onChangeBirthdayContent(){
var f = document.Form;
var year = f.ar.options[f.ar.selectedIndex].value;
var month = f.mon.options[f.mon.selectedIndex].value;
var day = f.dag.options[f.dag.selectedIndex].value;

var output =  month +  "/" + day + "/" + year;

if(year == '-' || month == '-' || day == '-'){ // Om nagon rullmeny inte ar ifylld sa satts vardet till ''.
output = '';
}
f.elements['Date of Birth'].value = output;
}
//-->
</script>
<input type="hidden" name="Date of Birth" id="Date of Birth" />
Medlem sedan feb. 20005 891 inlägg
#2

Kan du inte bara sätta värdet direkt:

<input type="hidden" name="Date of Birth" id="Date of Birth" value="0000
-00-00" />

Om de fyller i något, så triggas JS och ändrar värdet. Om inte, är det det värdet som postas.

Medlem sedan juni 200032 967 inlägg
#3

Kanske är problemet löst redan, men i koden finns ju detta:

if(year == '-' || month == '-' || day == '-'){ // Om nagon rullmeny inte ar ifylld sa satts vardet till ''.
output = '';

Vad händer om man ändrar output-variabeln till något standarddatum?
Visserligen ger detta ett standardvärde vare sig någon av dropdown:erna är orörd, eller alla, men jag tykcer mig ändå läsa mellan raderna att det borde vara det du är ute efter...

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)