JSP and Javascripts on same page (Passing values to JSP fromJavascript)

H

Husain

Hello.

I have a button on a form which goes to a function validate in
javascript as shown below:

<input type="button" name="<%= i%>" value="Edit"
onclick="validate(this.name)">

The javascript:

<script language="javascript">
var Action="";
function validate(Action){
var actstring = Action.toString();
ivalue = parseInt(actstring);
return confirm('Ok for this action : '+ivalue+' ?'); //this is to
test
}
</script>

I am changing the ivalue to an integer which eventually will access an
array built on the same page but using JSP. How can I pass the ivalue
back to the JSP?

Thank you.
 
T

Tom de Neef

Husain said:
I am changing the ivalue to an integer which eventually will access an
array built on the same page but using JSP. How can I pass the ivalue
back to the JSP?

Not very elegant: store it (as a string) in an invisible element of the
document. JSP can read it there.
Tom
 
T

Thomas 'PointedEars' Lahn

Husain said:
I have a button on a form which goes to a function validate in
javascript as shown below:

<input type="button" name="<%= i%>" value="Edit"
onclick="validate(this.name)">

The javascript:

<script language="javascript">

var Action="";
function validate(Action){

By good convention, only identifiers referring constructors and constants
should begin with a capital letter. You should know that one from Java.
var actstring = Action.toString();

The type conversion is unnecessary as the value is a string value already.
ivalue = parseInt(actstring);

Should be:

ivalue = parseInt(actstring, 10);

But since you are setting the value and not the user, this conversion is
unnecessary as well, at least in this particular code snippet.
return confirm('Ok for this action : '+ivalue+' ?'); //this is to
test
}
</script>

I am changing the ivalue to an integer which eventually will access an
array built on the same page but using JSP. How can I pass the ivalue
back to the JSP?

Suppose you have

<form action="...">
...
<input type="hidden" name="formaction" value="">
...
</form>

you could write something along

<form action="..." onsubmit="validate(this)">
<script type="text/javascript">
function validate(f)
{
var action = arguments.callee.action;
f.action = action;
return window.confirm("Ok for this action: ' + action);
}
</script>

<input type="submit" name="foo" value="Foo me!"
onclick="validate.action = this.name;">
</form>

But, as I said before in <you should use

<form action="handles_foo_and_bar_submits.jsp" ...>
...
<input type="submit" name="foo" value="Foo me!">
<input type="submit" name="bar" value="Bar me!">
</form>

instead, so that your application degrades gracefully. Since this is not
exactly a new problem, I suggest you read these articles I posted not long ago:

<<

A request in advance: *Please trim your quotes to the necessary minimum.*


PointedEars
 
T

Thomas 'PointedEars' Lahn

Tom said:
Not very elegant: store it (as a string) in an invisible element of the
document. JSP can read it there.

Not just any element, but <input type="hidden" ...> in the form to be
submitted. Else JSP will _not_ get at the value.


PointedEars
 

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,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top