除了名称和值之外,没有办法提交输入的属性,但是您可以使用任何想要的信息在表单上隐藏输入,甚至可以创建它们或动态地将它们填充到按钮的onclick中或表单的提交事件。
作为另一种选择,我会填充JSON形式的按钮值中的信息,因为按钮的值通常无用。
如果你真的想出了想法,那么你可以在表单的action属性中将url信息填入url的查询字符串中,然后通过检查GET数组来获取信息(但是如果表单方法是取而代之的是,然后这些值可能会被覆盖!)
但是,如果你只是需要一种方法来区分许多按钮,那么每个人都有不同的名称或值,这可能是按钮具有名称和值的唯一原因。
关于andrejd的回答,请注意,虽然你可以使用的onsubmit功能与阿贾克斯提交,然后返回false取消默认提交,请注意,使用这种方法存在以下问题:
1 )onSubmit函数不知道哪个按钮被按下了,但是你可以使用按钮的onClick事件,但是你必须绑定到表单上的每个提交按钮(你可以用jquery等来更容易地做到这一点)。
2)由于Ajax不会影响页面内容,因此ypu会自行刷新它或自行导航页面,后者可以使用“location.href”
3)如果你正在提交文件,你将很难用ajax做这件事,你可以尝试使用jquery fileupload插件。
4)Ajax被限制在同一个源(tgat表单提交不是),你可以尝试使用JSONP解决方法。
5)如果客户端没有JavaScript(比如一些手机或者某些文本浏览器,比如linux浏览器),或者禁用了JavaScript或者使用了较老的浏览器,Ajax将不起作用,并且通常不会建议完全依赖Ajax,但至少应该为这些情况提供一种替代方案。
对于问题2-4,你可以通过让Ajax只是额外的内容来解决它们,然后返回true以让默认提交提交表单。
我知道你可能无法显示所有内容,但我希望能够尽可能多地显示 – 2012-03-29 23:43:34
这是什么情况?发布时,只会发送输入元素的名称和值。 – F21 2012-03-29 23:46:33
传回的唯一数据是名称和值对。除非你愿意使用JavaScript。 – 2012-03-29 23:47:40