webForumDet fria alternativet

msgbox

10 svar · 267 visningar · startad av Biten

BitenMedlem sedan mars 2001131 inlägg
#1

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
#2

knappen ser ut så här:
<INPUT type="button" name=submit1 value=" Sök " onclick="return test()"></TD>

JohnsenMedlem sedan juli 2000718 inlägg
#3

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
#4

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
#5

Ö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
#6

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
#7

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
#8

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
#9

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
#10

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
#11

Jojoxx.....

Du förstod precis....*ler*
Ett STORT TACK!!!!

nu kan jag sova gott....

Zzzz

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb