Javascript 如何从提交中排除HTML表单单选按钮值?

Javascript 如何从提交中排除HTML表单单选按钮值?,javascript,jquery,forms,Javascript,Jquery,Forms,我只需要通过web表单向cgi脚本提交一个输入字段值 我添加了两个额外的表单控件(一个复选框和单选按钮),它们根据选择的状态操纵输入值 提交表单时,也会提交额外的表单字段值,这会破坏cgi脚本(我无权访问该脚本)。我从复选框中删除了“name”属性,因此它们不会被提交,但无法对单选按钮执行此操作,因为它会打断它们的分组 如何防止提交单选按钮值 您可以在submit处理程序中为它们添加disabled属性,这将防止它们被jQuery或普通提交序列化。例如: $("#myForm").submit(

我只需要通过web表单向cgi脚本提交一个输入字段值

我添加了两个额外的表单控件(一个复选框和单选按钮),它们根据选择的状态操纵输入值

提交表单时,也会提交额外的表单字段值,这会破坏cgi脚本(我无权访问该脚本)。我从复选框中删除了“name”属性,因此它们不会被提交,但无法对单选按钮执行此操作,因为它会打断它们的分组


如何防止提交单选按钮值

您可以在
submit
处理程序中为它们添加
disabled
属性,这将防止它们被jQuery或普通
提交序列化。例如:

$("#myForm").submit(function() {
  $(this).find(":radio, :checkbox").attr("disabled", true);
});
$.post("myPage.cgi", $("#myForm input[type=text]").serialize());
或者,您只能选择所需的元素,例如:

$("#myForm").submit(function() {
  $(this).find(":radio, :checkbox").attr("disabled", true);
});
$.post("myPage.cgi", $("#myForm input[type=text]").serialize());
让他们“不成功”。有几种方法可以实现这一点:
也可以有两种不同的表单:一种是具有可见表单元素的表单,另一种是具有表示要提交的最终结果的隐藏
输入的表单。您可以将
onchange
处理程序附加到可见表单元素,以便它们调用一些JavaScript来更新不可见字段,或者您可以在提交
onsubmit
处理程序之前直接运行函数来设置不可见值


这里有一个JSFIDLE演示了第二种方法(submit上的
处理程序):

对于jQuery 1.6+,它应该是
.prop('disabled',true)
。相关: