铁手剑谱

上善若水
数据加载中……
Struts秘籍之第2段:第3.6式: 从图像提交表单

第3.6式. 从图像提交表单

问题

你想要使用户能够通过点击一个不在HTML表单标签中的图像来提交表单。

动作要领

适应一个对JavaScript URL 的链接来提交表单:


<html:link href="javascript:document.myform.submit(  )">
    
<html:img page="/submit-form.gif" 
               alt
="Submit" border="0"/> 
</html:link>

 

动作变化

Web 应用经常使用可点击的图像来提交表单而不是仅仅通过表单按钮。Struts 的html:image标签可以用来产生一个显示图像的HTML input type="image" 标签。但是,对于复杂的 HTML 布局,并不总是能够将图像嵌入在表单<form> . . . </form>标签之中。有些时候,一个 HTML 页面可能在页面的某一段可能有多个表单,而提交页面的图像则在页面的另一个区域。比如,工具条风格的图像按钮。

上面的方法可以用于从表单之外的图像提交表单。所显示的图像嵌套在html:link标签中。该链接通过执行一行JavaScript来提交表单。在上面的代码中,JavaScript 将提交名为MyForm 的表单。表单名称必须匹配struts-config.xml文件中所配置的action元素的name属性。下面是这种方法产生的HTML 代码:

 

<href="javascript:document.myform.submit(  )">
    
<img src="/myapp/struts-power.gif"
         border
="0" alt="Submit">
</a>

 

虽然你可以直接使用上述HTML标记而不是Struts html标签,如果那样的话你将失去那些标签所提供的特征。通过使用Struts tag,你就不是必须要指定context 名称,并且你可以使图像名称和替换文本来自于资源束 (如果你需要的话)。

另一个办法是使用html:img 标签的onclick属性:

 

<html:img page="/submit-form.gif"
       onclick
="document.MyForm.submit( );"
           alt
="Submit" border="0"/>

 

这种方式的缺点是,有些浏览器并不提供图像是可以点击的一些可视提示线索。因为图像嵌入到一个链接中,大多数浏览器都会在改变鼠标指针以提示该图像是可以点击的。

如果你想要你的应用在浏览器禁止JavaScript的情况下也能够进行,还应该在表单中的某处提供一个常规的提交按钮。

 

相关招式

第3.9式会描述如何在表单的action属性中指定的地方将表单提交到另外一个URL。

 

posted on 2005-06-03 10:36 铁手 阅读(2499) 评论(3)  编辑  收藏 所属分类: JavaStruts系列

评论

# re: Struts秘籍之第2段:第3.6式: 从图像提交表单 2005-06-03 12:01 Dennis

直接使用 <html:image> 就好了啦
  回复  更多评论    

# Struts 秘籍(CookBook)[TrackBack] 2005-11-12 18:29 阿泠

本系列源改编自O'Reily的Strus Cookbook
[引用提示]阿泠引用了该文章, 地址: http://blog.donews.com/inclear/archive/2005/11/12/624363.aspx
  回复  更多评论    

# re: Struts秘籍之第2段:第3.6式: 从图像提交表单 2006-12-21 14:10 TT

那么请问。如过一个页面上有多个 <html:image>怎么知道点的是那个呢?
  回复  更多评论    

只有注册用户登录后才能发表评论。


网站导航: