calling input button click manually

C

CW

In my javascript, when enter key is pressed, I want to simulate the effect
of clicking a button.

var mykey;
var posted=false;

if (window.Event){
document.captureEvents(Event.KEYDOWN);
}

document.onkeydown = myKeyDown;

function myKeyDown(e){

if (window.Event){
mykey = e.which;
}
else{
mykey = event.keyCode;
}
//alert(mykey);

var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}

if ((mykey==13) && (posted==false) && (theform.btnSend.click))
{
posted=true;
theform.btnSend.click();
}
}

Everything works fine in IE4 to IE6. But NS behaviour is really bizzare.

Thing work as expected in NS7.

In NS6, theform.btnSend.click() does not cause form submission.

In NS4, it complains that theform.btnSend.click() does not exist (despite
having passed the if test that verifies theform.btnSend.click exists).

Any idea?

Thanks
 
L

Lee

CW said:
In my javascript, when enter key is pressed, I want to simulate the effect
of clicking a button.

var mykey;
var posted=false;

if (window.Event){
document.captureEvents(Event.KEYDOWN);
}

document.onkeydown = myKeyDown;

function myKeyDown(e){

if (window.Event){
mykey = e.which;
}
else{
mykey = event.keyCode;
}
//alert(mykey);

var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}

if ((mykey==13) && (posted==false) && (theform.btnSend.click))
{
posted=true;
theform.btnSend.click();
}
}

Everything works fine in IE4 to IE6. But NS behaviour is really bizzare.

Thing work as expected in NS7.

In NS6, theform.btnSend.click() does not cause form submission.

In NS4, it complains that theform.btnSend.click() does not exist (despite
having passed the if test that verifies theform.btnSend.click exists).

Any idea?

It's generally a bad idea to do anything as drastic as submit a
form on keydown. That leaves the keyup event in limbo, with
unpredictable consequences.

I don't have NS6 installed, but NS4 submits for me when the button's
click() method is called.

Is there a reason why you're calling the click() method, instead of
just directly invoking the form's submit() method?
 
C

CW

because there are 2 buttons on the form. If I call submit, it doesn't
specify which button is pressed.

thanx
Lee said:
CW said:
In my javascript, when enter key is pressed, I want to simulate the effect
of clicking a button.

var mykey;
var posted=false;

if (window.Event){
document.captureEvents(Event.KEYDOWN);
}

document.onkeydown = myKeyDown;

function myKeyDown(e){

if (window.Event){
mykey = e.which;
}
else{
mykey = event.keyCode;
}
//alert(mykey);

var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}

if ((mykey==13) && (posted==false) && (theform.btnSend.click))
{
posted=true;
theform.btnSend.click();
}
}

Everything works fine in IE4 to IE6. But NS behaviour is really bizzare.

Thing work as expected in NS7.

In NS6, theform.btnSend.click() does not cause form submission.

In NS4, it complains that theform.btnSend.click() does not exist (despite
having passed the if test that verifies theform.btnSend.click exists).

Any idea?

It's generally a bad idea to do anything as drastic as submit a
form on keydown. That leaves the keyup event in limbo, with
unpredictable consequences.

I don't have NS6 installed, but NS4 submits for me when the button's
click() method is called.

Is there a reason why you're calling the click() method, instead of
just directly invoking the form's submit() method?
 
L

Lee

CW said:
because there are 2 buttons on the form. If I call submit, it doesn't
specify which button is pressed.

You can set a hidden form field to tell which was pressed,
or better, redesign it so that it will work without Javascript,
for those who have it disabled.

Please don't top post. Respond *after* the message you're
responding to.
 

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,995
Messages
2,570,236
Members
46,823
Latest member
Nadia88

Latest Threads

Top