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

时间:2010-11-08 16:12:41

标签: javascript jquery forms

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

我添加了一些额外的表单控件(复选框和单选按钮),根据所选的状态操作输入值。

提交表单时,还会提交额外的表单字段值,这会破坏cgi脚本(我无权访问)。我从复选框中删除了'name'属性,因此它们没有提交但是不能为单选按钮执行此操作,因为它会破坏它们的分组。

如何阻止提交单选按钮值?

3 个答案:

答案 0 :(得分:12)

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

$("#myForm").submit(function() {
  $(this).find(":radio, :checkbox").attr("disabled", true);
});

或者您可以.serialize()只能使用您想要的元素,例如:

$.post("myPage.cgi", $("#myForm input[type=text]").serialize());

答案 1 :(得分:6)

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

答案 2 :(得分:0)

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

这是一个jsFiddle演示第二种方法(onsubmit处理程序):http://jsfiddle.net/gtU4J/