如何排除提交的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()); 
+0

也做了工作。谢谢。 – pelms 2010-11-08 16:25:22

+0

对于jQuery 1.6+,它应该是'.prop('disabled',true)'。 – 2014-03-12 12:25:02

让他们 “不成功”。有几种方法来实现这一目标: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2

+0

谢谢安德烈。有用的页面。 – pelms 2010-11-08 16:35:27

也可以有两种不同的形式:一个有可见的形式元素和一种具有隐藏input表示要提交的最终结果。您可以将onchange处理程序附加到可见表单元素,以便它们调用某个JavaScript来更新不可见字段,或者可以作为onsubmit处理程序的一部分运行函数,以便在提交之前直接设置不可见值。

这里有一个展示的jsfiddle第二种方法(该onsubmit处理程序):http://jsfiddle.net/gtU4J/