如何排除提交的HTML表单单选按钮值?
我需要通过一个web窗体向cgi脚本提交一个输入字段值。如何排除提交的HTML表单单选按钮值?
我已经添加了一些额外的表单控件(复选框和单选按钮),它们根据所选状态操纵输入值。
当提交表单时,额外的表单字段值也会被提交,这会破坏cgi脚本(我无权访问)。我从复选框中删除了'name'属性,因此它们没有被提交,但是无法为单选按钮执行此操作,因为它会打断它们的分组。
如何防止提交单选按钮值?
您可以在submit
处理程序中为它们添加disabled
属性,这可以防止它们被jQuery或正常的<form>
提交序列化。例如:
$("#myForm").submit(function() {
$(this).find(":radio, :checkbox").attr("disabled", true);
});
或者你也可以.serialize()
只有你想要的元素,例如:
$.post("myPage.cgi", $("#myForm input[type=text]").serialize());
让他们 “不成功”。有几种方法来实现这一目标: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2
谢谢安德烈。有用的页面。 – pelms 2010-11-08 16:35:27
也可以有两种不同的形式:一个有可见的形式元素和一种具有隐藏input
表示要提交的最终结果。您可以将onchange
处理程序附加到可见表单元素,以便它们调用某个JavaScript来更新不可见字段,或者可以作为onsubmit
处理程序的一部分运行函数,以便在提交之前直接设置不可见值。
这里有一个展示的jsfiddle第二种方法(该onsubmit
处理程序):http://jsfiddle.net/gtU4J/
也做了工作。谢谢。 – pelms 2010-11-08 16:25:22
对于jQuery 1.6+,它应该是'.prop('disabled',true)'。 – 2014-03-12 12:25:02