Re: 2 button form + which button was pressed
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.javascript archive

Re: 2 button form + which button was pressed

From: RobG <rgqld@iinet.net.au>
Date: Tue Apr 04 2006 - 06:25:33 CEST

Bill_W_Stephens@yahoo.com said on 04/04/2006 1:23 PM AEST:
> I need a form with two buttons and ability to detect which button was
> pressed. I got this code to work using a javascript global variable,
> but I know there must be a better way using DOM. Any suggestions?

Change your function to be a property of an object and have the button's
click event set a property of that object rather than of the window
(global) object.

> <html>
> <head>
> <script language="JavaScript" type="text/javascript">

The language attribute is deprecated, remove it but keep type.

> // global var: which button I am pressing
> var btnWhichButton;
> //========================================================
> // Check the input fields of the form
> //========================================================
> function chkMyForm() {

Change to:

var chkMyForm = (function()
     {
       var btnWhichButton;

       return {
         check : function(){
           alert(btnWhichButton.value);

           // Do real checking based on value of btnWhichButton
           // Essentially put body of your current function here

         },
         setWhichButton : function(btn){
           btnWhichButton = btn;
         }
       };
     })();

Then in the form:

<form action="" onsubmit="chkMyForm.check()" ... >

   <input type="submit" name="SubmitRecord" value="Submit Record"
    onclick="chkMyForm.setWhichButton(this)">

   <input type="submit" name="DeleteRecord" value="Delete Record"
    onclick="chkMyForm.setWhichButton(this)">

</form>

[...]
>
> <form class="noLF" name="SubmitExpenseForm1"
> action="javascript:chkMyForm();" >

Don't munge the action attribute, use an onsubmit attribute (see above).

[...]

> <!-- Submit Record Button -->
> <input type="submit" NAME="Submit" value="Submit Record"
> onclick="btnWhichButton=this">

It's not good to use 'Submit' as a form control name, it can too easily
become 'submit' and mask the form's submit() method. It's not a problem
here, but good to avoid anyway.

[...]

-- 
Rob
Group FAQ: <URL:http://www.jibbering.com/FAQ>
Received on Mon May 1 04:39:45 2006