views:

982

answers:

3

I am creating a registration form which contains two submit buttons. I need to know which button is clicked in the form in my servlet code?

A: 

You can add a hidden field to the form and when a user clicks a button set its value to "btn1" or "btn2" using javascript before sumbit.

Cheers :)

Ratnesh Maurya
There is no need for JS. You can just do what Google does, have two submit buttons with different values.
Matthew Flaschen
<input name="submit" type="submit" value="SearchSumbit" onClick="javascript: document.Form1.sumbitType.value = 'btn1';" />BTW this is the JS way of doing it :)
Ratnesh Maurya
So little code. So many things wrong with it. (1) It can't decide if it wants to be HTML or XHTML. (2) It has spelling errors. (3) It introduces a dependency on JS that simply isn't needed. (4) It uses a loop label without a loop. (5) It goes the long way around to get a reference to the form element. (6) It uses intrinsic event handler attributes instead of separating out the code in to a script file. While it is *a* way of doing it with JS, it is a very poor example of using JS to solve the problem, and JS is the wrong tool to solve the problem with in the first place.
David Dorward
+3  A: 

Read the answers to this question.

So, in

String button1 = request.getParameter("button1");
String button2 = request.getParameter("button2");

the value which isn't null is the pressed button.

Or, if you want to use the same name for the two buttons you can set a different value

<input type="submit" name="act" value="delete"/>
<input type="submit" name="act" value="update"/>

Then

String act = request.getParameter("act");
if (act.equals("delete")) {
    //delete button was pressed
} else if (act.equals("update")) {
    //update button was pressed
} else if (act == null) {
    //no button has been selected
} else {
    //someone has altered the HTML and sent a different value!
}
Vinko Vrsalovic
+2  A: 

Only the clicked button will be a successful control.

<input type="submit" name="action" value="Something">
<input type="submit" name="action" value="Something Else">

Then, server side, check the value of the action data.

David Dorward