未检查的无线电不会发布其值

时间:2013-11-17 15:56:39

标签: javascript html onclick radio-button

寻找解决方案,以便在检查时是否可以POST 2我的单选按钮值。

我的代码是

<input name="r1" id="r1" type="radio">r1
<input name="r2" id="r2" type="radio">r2

当我提交表格时,我想要张贴2个参数: r1:价值 r2:值

value = 1(如果选中) 但如果没有选中,也需要传递0。

尝试在提交按钮onclick动作上设置值,但这没有帮助。

2 个答案:

答案 0 :(得分:1)

简单地说:

不能。如果要发布两个或更多值,请使用复选框。

<input type="checkbox" name="check[]" value="1">
<input type="checkbox" name="check[]" value="2">

答案 1 :(得分:0)

你应该让<input>具有不同的名称和ID,并为每个“假”状态创建一个新的无线电;然后将Javascript监听器绑定到onClick事件 - 使用jQuery:

代码

<input type="radio" name="radio1" id="radio1" value="1"> R1
<input type="radio" name="radio1" id="radio1_2" value="0" style="display: none">
<input type="radio" name="radio2" id="radio2" value="1"> R2
<input type="radio" name="radio2" id="radio2_2" value="0" style="display: none">
$("#radio1").click(function() {
  $("#radio2").prop("checked", false);
  $("#radio2_2").prop("checked", true);
});
$("#radio2").click(function () {
  $("#radio1").prop("checked", false);
  $("#radio1_2").prop("checked", true);
});

说明

您将两个无线电中的每一个设置为不同的名称;因此,每个都属于不同的群体。您必须为每个输入的类似错误的值设置不同的无线电(其样式设置为隐藏,因为两个无线电组看起来应该是单个的)。有一个问题:如果您选中一个,则另一个将不会被取消选中。救命啊!

但您希望一次只检查其中一个。 Javascript / jQuery函数处理如下:

  • 如果点击#radio1 (并进行检查),则必须取消选中 #radio2 ;
  • 然后检查 radio2 组中的隐藏按钮,即 #radio2_2 ;
  • 如果点击 #radio2 #radio1 未选中且#radio1_2 ,则选中),则相反。

这是一个优雅的(尽管可以说是hacky)解决方案,你想要做什么。如果隐藏的无线电的类型是hidden而不是radio,它可以工作,但我不确定如何。使它们成为隐藏的无线电可以很容易地将它们作为GET / POST值处理。