Java 添加所选单选按钮的数量(在php/js中)
我有5套单选按钮,set1,set2,set3,set4,set5。每个值都是是/否 我需要在隐藏的文本框中显示“是”的编号。。即1、2、3、4或5,并且随着人们选择不同的选项而明显变化Java 添加所选单选按钮的数量(在php/js中),java,php,javascript,Java,Php,Javascript,我有5套单选按钮,set1,set2,set3,set4,set5。每个值都是是/否 我需要在隐藏的文本框中显示“是”的编号。。即1、2、3、4或5,并且随着人们选择不同的选项而明显变化 <input type="radio" name="set1" id="set1_no" value="no"> <input type="radio" name="set1" id="set1_yes" value="yes"> <input type="radio" name
<input type="radio" name="set1" id="set1_no" value="no">
<input type="radio" name="set1" id="set1_yes" value="yes">
<input type="radio" name="set2" id="set2_no" value="no">
<input type="radio" name="set2" id="set2_yes" value="yes">
<input type="radio" name="set3" id="set3_no" value="no">
<input type="radio" name="set3" id="set3_yes" value="yes">
<input type="radio" name="set4" id="set4_no" value="no">
<input type="radio" name="set4" id="set4_yes" value="yes">
<input type="radio" name="set5" id="set5_no" value="no">
<input type="radio" name="set5" id="set5_yes" value="yes">
<input type="hidden" name="number_of_yes" value="" readonly="readonly">
鉴于您正在设置一个隐藏字段(顺便说一句,它不需要是只读的,因为它是……嗯……隐藏的),我可能只会在
的submit上更新它。如果您确实需要在运行过程中对其进行更新,只需使用onclick
或onchange
。无论您如何触发它,您都可以尝试以下操作:
yourForm.onsubmit = setYesCount;
function setYesCount() {
var count = 0;
// could use yourForm.getElementsByTagName(),
// but since the OP didn't provide surrounding HTML:
var els = document.getElementsByTagName("input");
for (var i=0; i < els.length; i++) {
if (els[i].type === "radio" && els[i].checked && els[i].value === "yes")
count++;
}
// add an id attribute to the hidden input
// for the following to work
document.getElementById("number_of_yes").value = count;
}
无论何时单击“否”或“是”,都可以使用javascript来维护计数器变量。为所有“否”和“是”按钮定义一个类 我会想象做这样的事情
var ctr = 0;
$(document).ready( function($) {
$(".noradio").click((function () {
if (ctr != 0)
{
ctr--;
}
})
$(".yesradio").click()(function () {
ctr++;
})
$('input[name=hiddeninputname]').val(ctr);
});
杰出的唯一的问题是我有另一套或单选按钮,有是/否值。。我可以将是/否更改为yesX/noX,这可能会克服。。或者我也应该链接这些单选按钮集吗?正如您所注意到的,我的示例jQuery代码使用一个选择器来获取所有单选按钮。如果您需要为不同的组保留单独的总计,您可以通过多种方式优化选择器,例如:(A)基于某些包含元素进行选择;(B) 使用选择器语法并适当命名不同的组;(C) 给每个组分配自己的类,然后选择该类。jQuery有很多选项和示例。(A)单选按钮集名称?set1、set2、set3等?除了上述单选按钮外,我还有另一个收音机组:现在这台收音机在其他单选按钮之前。因此,如果在此单选按钮中选择单选选项3,则仅检查前3台收音机的是。。set1、set2、SET3等,如果选择1,则只选中set1。。希望这有意义?复杂?您想要
。单击(function()…
,而不是。单击()(function()…
。您的“yes”单击处理程序在应该递增时递减,尽管我认为您最好每次都重新计算总计,而不是试图保持一个运行的总计:不太可能有奇怪的bug(特别是当您的ctr变量是全局变量时)并且也适用于以编程方式设置值的情况。感谢您的反馈。如建议的那样修复了代码。命名更独特的变量是否可以解决问题?只是想强调一下,OP必须这样做。。。
var ctr = 0;
$(document).ready( function($) {
$(".noradio").click((function () {
if (ctr != 0)
{
ctr--;
}
})
$(".yesradio").click()(function () {
ctr++;
})
$('input[name=hiddeninputname]').val(ctr);
});