webForumDet fria alternativet

Inaktivera submitknapp?

6 svar · 331 visningar · startad av Tony Kjeldsen

Tony KjeldsenMedlem sedan jan. 200515 inlägg
#1

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

dectgapMedlem 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

icaaqMedlem 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

Tony KjeldsenMedlem 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();">
zcorpanMedlem 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>

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

Tony KjeldsenMedlem sedan jan. 200515 inlägg
#7

Ska testa detta. ;-)

265 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
125 ms — hämta statistik (db)
138 ms — hämta tråd, inlägg och bilagor (db)