focus()

JavaScript

1 svar · 161 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Trådstart#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>
265 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)