webForumDet fria alternativet
Logga in / Bli medlem

focus()

JavaScript

1 svar · 158 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1
<SCRIPT LANGUAGE="JAVASCRIPT">
<!--
function checkValues() {
	if (document.kundform.firstname.value == 0) {
		alert("Du måste fylla i förnamn.");
firstname.focus();
		return false;
	}
	if (document.kundform.lastname.value == 0) {
		alert("Du måste fylla i efternamn.");
lastname.focus();
		return false;
	}
return true;
}
//-->
</script>

Formen ser ut så här:

<form name="kundform" action="post.asp" method="post" onSubmit="return checkValues();">

Om firstname-fältet är tomt så poppar alerten upp precis som den skall. Däremot skickas sidan ändå till post.asp. Det är focus() som är mysko.
Hur skall jag göra?

Medlem sedan juni 20004 308 inlägg
#2

Lite småsaker. Rent syntax-mässigt fattas det ett "}". Sedan vill du antagligen inte kolla om värdet på fälten är 0 utan om längden på värdet är 0 (alltså om fältet är tomt). Sedan får du även ange hela objektnamnet när du skall göra focus(), på samma sätt som när du kollar värdet. Resultatet blir då;

<SCRIPT LANGUAGE="JAVASCRIPT">
<!--
function checkValues() {
	if (document.kundform.firstname.value.length == 0) {
		alert("Du måste fylla i förnamn.");
		document.kundform.firstname.focus();
		return false;
	} else if (document.kundform.lastname.value.length == 0) {
		alert("Du måste fylla i efternamn.");
		document.kundform.lastname.focus();
		return false;
	} else {
		return true;
	}
}
//-->
</script>
275 ms totalt · 4 externa anrop · v20260731065814-full.05830320
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)