Press Enter on a text box

J

JCO

How's come when I press the enter key, I can't get it to execute the correct
password.
It seems that I'm forced to press the button. I want to be able to do both.

How is this done?
 
J

JCO

Sorry for the lack of detail. Site is not hosted at this time.
I will try again. I have a logon form (logon.htm) that contains a Textbox,
Push Button (label = Enter Password) & and a Clear button (label is clear).
Simple as that.

Currently, you would enter the password in the text box and select the
button. The script does the rest. I want to modify it by allowing the user
to type in the password and simply press the enter key as another method to
validate the form. I tried to trap the enter key as shown, but it is not
working.

<FORM NAME="frmPassword" onSubmit="return valForm()">
<input type=password name="txtInput" size="15" onkeypress="onEnter();" >
<input type="button" value="Enter Password" name="btnEnter"
onclick="valForm();">
<input type="reset" value="Clear" name="btnClear"></p>

function onEnter(){
if(event.keyCode==13)
document.frmPassword.btnEnter.click();
}

What is wrong with this?
 
M

Michael Winter

<FORM NAME="frmPassword" onSubmit="return valForm()">
<input type=password name="txtInput" size="15" onkeypress="onEnter();" >
<input type="button" value="Enter Password" name="btnEnter"
onclick="valForm();">
<input type="reset" value="Clear" name="btnClear"></p>

function onEnter(){
if(event.keyCode==13)
document.frmPassword.btnEnter.click();
}

What is wrong with this?

You don't cancel the event. Try:

function onEnter( evt, frm ) {
var keyCode = null;

if( evt.which ) {
keyCode = evt.which;
} else if( evt.keyCode ) {
keyCode = evt.keyCode;
}
if( 13 == keyCode ) {
frm.btnEnter.click();
return false;
}
return true;
}
...
<input type="password" name="txtInput" size="15"
onkeypress="return onEnter(event,this.form);" >

This should work (partially tested on) Opera 7.23, Netscape 7, IE 6, and
Mozilla 1.6. Your original code could only have worked on IE and Opera;
Netscape and Mozilla don't support a global event object, or event.keyCode.

Mike
 
J

JCO

It is working now. Thanks for your help.

Michael Winter said:
You don't cancel the event. Try:

function onEnter( evt, frm ) {
var keyCode = null;

if( evt.which ) {
keyCode = evt.which;
} else if( evt.keyCode ) {
keyCode = evt.keyCode;
}
if( 13 == keyCode ) {
frm.btnEnter.click();
return false;
}
return true;
}
...
<input type="password" name="txtInput" size="15"
onkeypress="return onEnter(event,this.form);" >

This should work (partially tested on) Opera 7.23, Netscape 7, IE 6, and
Mozilla 1.6. Your original code could only have worked on IE and Opera;
Netscape and Mozilla don't support a global event object, or event.keyCode.

Mike
 
I

Ivo

<FORM NAME="frmPassword" onSubmit="return valForm()">
<input type=password name="txtInput" size="15" onkeypress="onEnter();" >
<input type="button" value="Enter Password" name="btnEnter"
onclick="valForm();">
<input type="reset" value="Clear" name="btnClear"></p>

function onEnter(){
if(event.keyCode==13)
document.frmPassword.btnEnter.click();
}

I believe I noticed that the "Enter key" functionality depends on the
presence of an <input type="submit"> in the form. I had a form where I
replaced it with a <button> (to allow underlined letters) and the Enter key
stopped working there and then. The non-javascript dependent solution I
ended up with was to add an <input type="submit"> with a height and width of
1.
HTH
Ivo
 
J

JCO

Are you saying to change the button (that says "Enter Password") should be
of type submit or are you saying the textbox should be of type submit.

I have changed the textbox to type=password; this makes sense.
 
M

Michael Winter

[Fixed top-post]
I believe I noticed that the "Enter key" functionality depends on the
presence of an <input type="submit"> in the form.
[snip]

Are you saying to change the button (that says "Enter Password") should
be of type submit or are you saying the textbox should be of type submit.

What I believe Ivo is trying to say is that when a submit button is
present in a form and the Enter key is pressed whilst a textbox or
password field[1] in the same form has focus, the form should be submitted.

If you change btnEnter to type submit, you might not need the script I
presented (I wasn't really thinking about that, I just fixed your script).

Mike

[1] I don't remember if this extends to other form controls.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,525
Members
44,997
Latest member
mileyka

Latest Threads

Top