webForumDet fria alternativet

Ej använda Enter!

12 svar · 732 visningar · startad av harry_boy

harry_boyMedlem sedan feb. 2003199 inlägg
#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

@ndersMedlem sedan juni 200026 914 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();">
harry_boyMedlem sedan feb. 2003199 inlägg
#3

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

@ndersMedlem sedan juni 200026 914 inlägg
#4

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

harry_boyMedlem sedan feb. 2003199 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?

@ndersMedlem sedan juni 200026 914 inlägg
#6

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

harry_boyMedlem sedan feb. 2003199 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">
@ndersMedlem sedan juni 200026 914 inlägg
#8

Fungerar detta, kanske?

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

Funkade perfekt

dectgapMedlem sedan sep. 20021 542 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)">
@ndersMedlem sedan juni 200026 914 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?

dectgapMedlem sedan sep. 20021 542 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>
harry_boyMedlem sedan feb. 2003199 inlägg
#13

Ni är ju kungar!!!

Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb