webForumDet fria alternativet

Ej använda Enter!

JavaScriptur Javascript

12 svar · 732 visningar · startad av harry_boy

Medlem sedan feb. 2003193 inlägg
Frågan#1

Kan man få bort funktionen att man kan skicka ett formulär med hjälp av att bara trycka ENTER ... jag vill att man måste göra det via "en skicka knapp"??

Mvh Micke

Medlem sedan juni 200032 967 inlägg
#2

Du kan byta din submit-knapp mot en vanlig knapp som utför skickandet.

<input type="button" value="skicka" onclick="this.form.submit();">
Medlem sedan feb. 2003193 inlägg
#3

Går det inte då att skicka formuläret med hjälp av att enbart trycka enter eller?

Medlem sedan juni 200032 967 inlägg
#4

Nej. Finns ingen submit-knapp kan inte formuläret postas med enter-tryckning.

Medlem sedan feb. 2003193 inlägg
#5

Det gick ju kanon men nu så blir jag av med min validering av fält som är gjord efter http://www.webforum.nu/showthread.php?s=&threadid=115976&forumid=24

Är det något enkelt som jag kan ändra för att även detta skall funka?

Medlem sedan juni 200032 967 inlägg
#6

Du får visa mer kod. Men det ska inte vara några problem att köra valideringsfunktionen först.

Medlem sedan feb. 2003193 inlägg
#7

Lite utdrag ur koden, hoppas du förstår!

<form action="sendorder.asp" method="post" name="form1" onsubmit="return validate(this)";>
<script language="javascript" type="text/javascript">
function validate(obj){
    return (
    Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
    Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) &&
    Boolean(obj.elements["adress"].value != "" || alert("Ingen andress ifyllt!")) && 
    Boolean(obj.elements["postnr"].value != "" || alert("Ingen postnr ifyllt!")) &&
    Boolean(obj.elements["postort"].value != "" || alert("Ingen postort ifyllt!")) && 
    Boolean(obj.elements["telefon"].value != "" || alert("Inget telefonnummer ifyllt!")) &&  
	Boolean(obj.elements["mailadress"].value.indexOf('@') != -1 || alert("E-postadress är ej giltigt ifylld")) &&
	Boolean(obj.elements["artnr1"].value != "" || alert("Fyll i artikelnr!")) &&
	Boolean(obj.elements["ben1"].value != "" || alert("Fyll i benämning!!")) && 
	Boolean(obj.elements["antal1"].value != "0" || alert("Fyll i antal!")) &&
	Boolean(obj.elements["pris1"].value != "0" || alert("Fyll i rätt a-pris!"))
	    );
}

</script>
<input type="text" name="fornamn" size="24" tabindex="1">
Medlem sedan juni 200032 967 inlägg
#8

Fungerar detta, kanske?

<input type="button" value="skicka" onclick="if(validate(this.form)) this.form.submit();">
Medlem sedan feb. 2003193 inlägg
#9

Funkade perfekt

Medlem sedan sep. 20021 655 inlägg
#10

Jag har en invändning här:

Om man inte har JavaScript aktiverat kommer knappen inte att fungera, och man kommer inte att kunna skicka iväg formuläret oavsett vilka knappar man trycker på.
Då skulle jag hellre se till att man stänger av "skicka formuläret med Enter" för de som har JavaScript aktiverat, och de andra gör vi ingenting åt.

<form onkeypress="return (event.keyCode!=13)" onsubmit="return validera(this)">
Medlem sedan juni 200032 967 inlägg
#11

Jag bugar mig för överheten och inser att dectgap tänkt ett snäpp längre. :)

Men vad händer om man står i en textarea och trycker på enter-tangenten?

Medlem sedan sep. 20021 655 inlägg
#12

@nders skrev:

Men vad händer om man står i en textarea och trycker på enter-tangenten?

Ja, då får man minst sagt problem :r

Men det går att ställa det till rätta:

<textarea onkeypress="event.cancelBubble = true; if (event.stopPropagation) event.stopPropagation()"></textarea>
Medlem sedan feb. 2003193 inlägg
#13

Ni är ju kungar!!!

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