Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加所选单选按钮的数量(在php/js中)_Java_Php_Javascript - Fatal编程技术网

Java 添加所选单选按钮的数量(在php/js中)

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

我有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="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);
});