问题在于:
我的页面显示一组项目。每个项目都有一个与之关联的复选框(它是表单的一部分)。用户可以选中这些复选框,然后按“删除”按钮。同一页面还有一个“上传”按钮,可以上传一张excel资料。 目前,我的表单动作总结说:“xyzAction”,我有两个不同的处理程序(类似于Struts Action) - 一个用于删除商店,另一个用于上传商店。
我被告知,最好的方法是通过执行以下操作之一来依赖javascript: 1))按下上传和删除按钮切换表单操作 - 通过调用不同的操作。 2)使用隐藏变量“act”将其设置为删除/上传并提交到单个表单。服务器端操作将负责识别行为并转发到相应的操作。
方法(1) - 对我来说似乎非常不优雅。玩表格动作似乎没必要。 方法(2) - 如果你的javascript被关闭并且也不是很优雅,那么显然不会起作用。
必须有第三种方法吗?这会让我开心吗?
答案 0 :(得分:3)
听起来你可能需要两种不同的形式,对于两种不同的行为。
答案 1 :(得分:1)
您需要先让HTML正确。
您有两种不同的操作,因此您应该有两种形式 - 一个好的经验法则是每个表单应该只有一个提交按钮。这是HTML的最佳实践,将确保页面无需JS或任何其他技巧。
让页面像这样工作后,使用JS来操作DOM以生成所需的UI。这是使用JS将behvour添加到UI中,并且是不引人注目的JS的最佳实践。
(如果你真的想把你的行为混合在一个表单中,用JS改变表单的动作是最好的行动方案。但是考虑一下如果用户选中一个复选框然后改变他们的想法会发生什么上传文件,选中复选框。您应该注意不要删除任何内容。)