3.6. Submitting a Form from an Image
Problem
You want the user to be able to submit a form by clicking an image
that isn't contained within the HTML
form tags.
Solution
Use a link with a JavaScript URL to submit the form:
<html:link href="javascript:document.MyForm.submit( )">
<html:img page="/submit-form.gif"
alt="Submit" border="0"/>
</html:link>Discussion
Web sites frequently use clickable images instead of HTML submit
buttons to trigger form submission. The Struts
html:image tag can be
used to generate an HTML input type="image" tag
that creates such an image. However, with complex HTML layouts, it is
not always possible to nest the image within the
<form> . . . </form> tags. In some
cases, an HTML page may have multiple forms in one section of a page,
with the images for submitting the forms in a separate region of the
page.
The Solution above can be used to submit a form from an image located
outside of the form tags. The image to display is
nested in an html:link tag. The link submits the
form by executing a line of JavaScript. In the Solution, the
JavaScript will submit the form named MyForm. The
form name must match the name attribute from the
corresponding action element in the
struts-config.xml. Here is the HTML that gets
generated using the Solution:
<a href="javascript:document.MyForm.submit( )">
<img src="/myApp/struts-power.gif"
border="0" alt="Submit">
</a>Though you could directly use the above HTML markup instead of the
Struts html tags, you would lose the features ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access