BitenMedlem sedan mars 2001131 inlägg
Hallå....
kan någon förklara hur man skriver om man vill visa en msgbox då en viss radiobutten är markerad?
jag har gjort så här men det fungerar inte:
<script language="javascript">
function test(){
if (document.form1.Year.checked==true ){
if (document.form1.cYear.value == "" ){
alert("Du måste skriva ett år i datumfältet")
return false;
}
}else{
document.form1.submit();
return true;
}
}
</script>
BitenMedlem sedan mars 2001131 inlägg
knappen ser ut så här:
<INPUT type="button" name=submit1 value=" Sök " onclick="return test()"></TD>
JohnsenMedlem sedan juli 2000718 inlägg
Du var ju inte helt fel ute. ;)
Jag kanske skulle gjort så här:
<html>
<head>
<script language="javascript">
function test(){
if(document.form1.Year.checked==true && document.form1.cYear.value==""){
alert("Du måste skriva ett år i datumfältet");}
else{document.form1.submit();}
}
</script>
</head>
<body>
<form name="form1" action="bla_bla.asp">
<input type="checkbox" name="Year">
<input type="text" name="cYear">
<input type="button" name="submit1" value=" Sök " onclick="test();">
</form>
</body>
</html>
------------------
- J-O-H-N-S-E-N -
------------------
BitenMedlem sedan mars 2001131 inlägg
Tack Johnsen!!
Men jag får ett felmeddelande som säger att inte document.form1.Year.checked är ett objekt
vad menas med det?
JohnsenMedlem sedan juli 2000718 inlägg
Öhhh, vet inte.
Hur är det med stora och små bokstäver?
Har du skrivit "true"ellertrue?
------------------
- J-O-H-N-S-E-N -
------------------
BitenMedlem sedan mars 2001131 inlägg
Jag förstår inget....
på rad 7...
den där ifsatsen börjar klagar den över att det 20:de tecknet.
en identifierare förväntas....
Kod 0
vad innebär det?
function test(){
if(document.form1."Visa_lotter".checked==Year && document.form1.cYear.value == "" ){
alert("Du måste skriva ett år i datumfältet");}
else{
document.form1.submit1();
}
}
</script>
varför kan det aldrig fungera smärtfritt?....
HJÄLP!!!
JojoxxMedlem sedan juni 20004 306 inlägg
Ursäkta, men som jag förstår så vill du kolla 2 saker, dels om kryss-rutan är markerad, dels att ett fält innehåller någonting. Då skulle jag göra så här;
<script language="javascript">
function test(){
if(!document.form1.Year.checked){
alert("Kryssrutan är inte markerad");
return false;
} else if(document.form1.cYear.value == ""){
alert("Du måste skriva ett år i datumfältet");
return false;
} else {
return true;
}
</script>
<form onSubmit="return test();" name="form1" action="foo.cgi" method="post">
...resten av formuläret
Genom att använda onSubmit i form-elementet förhindrar du att formuläret råkar skickas iväg om någon trycker [enter] i ett text-fält.
------------------
/ J
BitenMedlem sedan mars 2001131 inlägg
Du har helt rätt Jojoxx.....
Men dialogrutan "kryssrytan är inte markerad" kommer upp hela tiden.
Beror det på att jag har fel name eller att jag har radiobuttons ?
<INPUT TYPE ="RADIO" NAME=Year Value="Year">Visa lotter år <INPUT id=text1 name="cYear" size=2%></TD></TR>
BitenMedlem sedan mars 2001131 inlägg
jojoxx....jag vet knappt själv vad jag vill....men jag ska försöka förklara.
jag vill att msgboxen "kryssrutan är inte markerad"
ska komma upp om Radiobutton "Year" inte är markerad och det står ett datum i fältet "cYear".
Och jag vill att msgboxen "du måste skriva in ett datum" sak komma upp om du har markerat radiobutton "Year" men inte skrivit i något datum....
Nu tror jag att jag gjort mig förståd.
Jag ber om ursäkt om jag är lite otydlig.....
finns det något bra sätt att göra detta?
<script language="javascript">
function test(){
if(document.form1.VisaLotter.checked){
alert("Kryssrutan är inte markerad");
return false;
}
else if(document.form1.cYear.value == ""){
alert("Du måste skriva ett år i datumfältet");
return false;
}else {
return true;
}
}
</script>
<INPUT TYPE ="RADIO" NAME=VisaLotter value="Nya" > Visa nya lotter<BR>
<INPUT TYPE ="RADIO" NAME=VisaLotter Value="gamla"> Visa Gamla lotter<BR>
<INPUT TYPE ="RADIO" NAME=VisaLotter Value="obehandlade"> Visa obehandlade lotter<BR>
<INPUT TYPE ="RADIO" NAME=VisaLotter Value="Year">Visa lotter år <INPUT id=text1 name="cYear" size=2%></TD></TR>
JojoxxMedlem sedan juni 20004 306 inlägg
Ok. Först kan vi konstatera att det är radio-knappar och inte checkboxar som används. Det betyder att man läser av dem via dess index från scriptet (radio-knappar har ju den egenskapen att de tillbör en grupp av flera där endast en kan vara markerad). Som det ser ut på sidan skall man välja ett alternativ, och om man väljer det sista skall man även bifoga ett år. Det kan se ut så här;
<script language="javascript">
function test(){
if(document.form1.VisaLotter[3].checked && document.form1.cYear.value.length != 2){
alert("Du måste skriva ett år i datumfältet");
return false;
} else {
return true;
}
}
</script>
Där vi alltså kollar om den fjärde (index 3, eftersom indexet börjar från 0 blir 3 den fjärde) radio-knappen är markerad och i så fall måste längden på det som är ifyllt vara 2 tecken (eftersom du satt size till 2 så tar jag det som du vill ha ett 2-siffrigt år, annars är det bara att ändra till 4).
Vidare syftar attributet size på synliga antal tecken i text-fältet. Vill du styra det mer exakt får du använda CSS;
<input type="text" name="foo" style="width:123px">
Hoppas det gav lite klarhet.
------------------
/ J
BitenMedlem sedan mars 2001131 inlägg
Jojoxx.....
Du förstod precis....*ler*
Ett STORT TACK!!!!
nu kan jag sova gott....
Zzzz