webForumDet fria alternativet

Inaktivera submitknapp?

HTML & CSS

6 svar · 331 visningar · startad av Tony Kjeldsen

Medlem sedan jan. 200515 inlägg
Frågan#1

Hur inaktiverar man en submitknapp för tangentbordstryckningar?
Alltså det ska bara gå att klicka på den och inte trycka Enter

Medlem sedan sep. 20021 655 inlägg
#2

Genom lite JavaScript går det bra:
http://www.webforum.nu/showthread.php?s=&forumid=24&threadid=116198

Medlem sedan okt. 20005 273 inlägg
#3

Re: Inaktivera submitknapp?

Tony Kjeldsen skrev:

Hur inaktiverar man en submitknapp för tangentbordstryckningar?
Alltså det ska bara gå att klicka på den och inte trycka Enter

<me>nyfikenienstrut</me>
Får man fråga varför du vill göra så?

mv icaaq

Medlem sedan jan. 200515 inlägg
#4

För det finns vissa som tror att man kan stega med Enter och har inte fattat att det är med Tab man stegar.

Tack för länken
Svaret är denna kodsnutt

<input type="button" value="skicka" onclick="this.form.submit();">
Medlem sedan dec. 20042 245 inlägg
#5

Och för den som förstår att man stegar med Tab och skickar med Enter...hur ska den skicka formuläret utan att använda musen? Att kräva JavaScript för att skicka ett formulär strider mot WCAG 1.0 checkpoint 6.3. (För övrigt är det inte alltid med Tab man navigerar. På en mobiltelefon navigerar man med pilarna, tex.)

<IMHO>
Att gynna dem som "tror att man stegar med enter" på detta vis hjälper ingen. Ändra inte det normala beteendet i webbläsare!
</IMHO>

Medlem sedan dec. 20042 245 inlägg
#6
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title></title>

<script type="text/javascript">
if (document.getElementsByTagName) {
	window.onload = function() {
		document.forms[0].setAttribute("onsubmit","return false;");
	}
	function checkInputs() {
		var inp = document.getElementsByTagName("input");
		if(inp[0].value != "" && inp[1].value != "")
			document.forms[0].setAttribute("onsubmit","");
	}
}
</script>

<form method="GET" action="./">
	<input name="one" onfocus="checkInputs();" onchange="checkInputs();">
	<input name="two" onfocus="checkInputs();" onchange="checkInputs();">
	<input type="submit" value="OK">
</form>

Detta förhindrar att formuläret skickas av misstag, samtidigt som man kan skicka iväg det när man fyllt i alla textrutor (med Enter). HTH (hope this helps).

<edit>
Jag kom på att om webbläsaren har javascript aktiverat men inte stöder DOM-skript (tex Netscape4), så kan man inte skicka formuläret. Jag har åtgärdat det nu... :)
</edit>

Medlem sedan jan. 200515 inlägg
#7

Ska testa detta. ;-)

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)