Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 如何按照在jsp页面上选择复选框的顺序获取复选框的值?_Java_Javascript_Jsp_Struts2 - Fatal编程技术网

Java 如何按照在jsp页面上选择复选框的顺序获取复选框的值?

Java 如何按照在jsp页面上选择复选框的顺序获取复选框的值?,java,javascript,jsp,struts2,Java,Javascript,Jsp,Struts2,我在jsp页面中有四个复选框。我希望按照选择的顺序获取它们的值。假设复选框中有值A、B、C、D。如果我先选择B,然后选择D,然后选择A,最后选择C。我应该得到B、D、A、C。这些值需要发送到java 1)添加新的隐藏输入字段。 2) 根据用户选择填充值 3) 读取服务器上的隐藏变量 例如:最初隐藏的_变量=“” 当用户选择B时,隐藏变量=“B” 当用户选择C时,隐藏的_variable=“B,C”如下所示 如果用户取消选择某个值,请从隐藏的变量中删除该值 所有这些都可以通过一些基本的js功能来完

我在jsp页面中有四个复选框。我希望按照选择的顺序获取它们的值。假设复选框中有值A、B、C、D。如果我先选择B,然后选择D,然后选择A,最后选择C。我应该得到B、D、A、C。这些值需要发送到java

1)添加新的隐藏输入字段。 2) 根据用户选择填充值 3) 读取服务器上的隐藏变量

例如:最初隐藏的_变量=“”

当用户选择B时,隐藏变量=“B” 当用户选择C时,隐藏的_variable=“B,C”如下所示

如果用户取消选择某个值,请从隐藏的变量中删除该值

所有这些都可以通过一些基本的js功能来完成,添加一个新的隐藏输入字段。 2) 根据用户选择填充值 3) 读取服务器上的隐藏变量

例如:最初隐藏的_变量=“”

当用户选择B时,隐藏变量=“B” 当用户选择C时,隐藏的_variable=“B,C”如下所示

如果用户取消选择某个值,请从隐藏的变量中删除该值


所有这些都可以通过一些基本的js功能来实现,HTML没有允许您排序值的控件。您必须使用JavaScript来跟踪单击内容的顺序(或者为每个选择提交表单)

实现这一点的最简单方法是使用复选框上的单击事件,将隐藏的输入设置为
hidden.value+=this.value


如果取消选中复选框,您需要决定业务逻辑,并实现它。

HTML没有允许您排序值的控件。您必须使用JavaScript来跟踪单击内容的顺序(或者为每个选择提交表单)

实现这一点的最简单方法是使用复选框上的单击事件,将隐藏的输入设置为
hidden.value+=this.value

如果取消选中复选框,您需要决定业务逻辑,并实现它。

只需使用
将值发送到Java即可

选中/取消选中复选框时,您将调用一个javascript函数,该函数将复选框的值附加(或删除,使用
子字符串
索引of
)到隐藏字段

编辑:这是重复的:

只需使用
将值发送到Java

选中/取消选中复选框时,您将调用一个javascript函数,该函数将复选框的值附加(或删除,使用
子字符串
索引of
)到隐藏字段

编辑:这是重复的:

尝试使用

$('#isAgeSelected').attr('checked')
这将返回true或fasle

尝试使用

$('#isAgeSelected').attr('checked')

这将返回true或fasle

可能不是最好的方法,但可以通过迂回的方法来实现,即使用单选按钮的onClick属性不断更新隐藏的输入字段
未测试代码:

<script>
 function updateFoo(elemId){
   var elem = document.getElementById("foo");
   elem.value = elem.value+", "+elemId;
   console.log(elem.value);        
}

funcition cleanFoo(){
   //Now clean the string to remove the ',' at the beggining and the end and to 
   //contain A,B,C,D only once
   /*
    Scan the string from the back and keep the last occurence of each ID
    since the user can select or click on radio buttons more than once
    Eg. a,b,c,d,b,b,c,a,d,d,a
    Keep:         b,c,    d,a  //final selections
    //I may write a code here when I get some time
    */
}

</script>
<body>
<input type="radio" id="A" onClick="updateFoo('A')">A<br/>
<input type="radio" id="B" onClick="updateFoo('B')">B<br/>
<input type="radio" id="C" onClick="updateFoo('C')">C<br/>
<input type="radio" id="D" onClick="updateFoo('D')">D<br/>
<input type="hidden" id="foo" value="">
</body>

函数updatefo(elemId){
var elem=document.getElementById(“foo”);
元素值=元素值+“,”+elemId;
控制台日志(元素值);
}
函数cleanFoo(){
//现在清洁字符串,以移除边和末端的“,”和
//仅包含一次A、B、C、D
/*
从后面扫描字符串并保留每个ID的最后一次出现
因为用户可以多次选择或单击单选按钮
a,b,c,d,b,b,c,a,d,d,a
保留:b、c、d、a//最终选择
//当我有时间的时候,我可以在这里写代码
*/
}
A
B
C
D

可能不是最好的方法,但可以通过迂回的方法完成,即使用单选按钮的onClick属性不断更新隐藏的输入字段
未测试代码:

<script>
 function updateFoo(elemId){
   var elem = document.getElementById("foo");
   elem.value = elem.value+", "+elemId;
   console.log(elem.value);        
}

funcition cleanFoo(){
   //Now clean the string to remove the ',' at the beggining and the end and to 
   //contain A,B,C,D only once
   /*
    Scan the string from the back and keep the last occurence of each ID
    since the user can select or click on radio buttons more than once
    Eg. a,b,c,d,b,b,c,a,d,d,a
    Keep:         b,c,    d,a  //final selections
    //I may write a code here when I get some time
    */
}

</script>
<body>
<input type="radio" id="A" onClick="updateFoo('A')">A<br/>
<input type="radio" id="B" onClick="updateFoo('B')">B<br/>
<input type="radio" id="C" onClick="updateFoo('C')">C<br/>
<input type="radio" id="D" onClick="updateFoo('D')">D<br/>
<input type="hidden" id="foo" value="">
</body>

函数updatefo(elemId){
var elem=document.getElementById(“foo”);
元素值=元素值+“,”+elemId;
控制台日志(元素值);
}
函数cleanFoo(){
//现在清洁字符串,以移除边和末端的“,”和
//仅包含一次A、B、C、D
/*
从后面扫描字符串并保留每个ID的最后一次出现
因为用户可以多次选择或单击单选按钮
a,b,c,d,b,b,c,a,d,d,a
保留:b、c、d、a//最终选择
//当我有时间的时候,我可以在这里写代码
*/
}
A
B
C
D

非常感谢大家。最后,我根据大家的建议得出了结果。 我用过: JavaScript代码

    <script type="text/javascript">

    arr = new Array();

    function updatePriority(elemId){

      var elem = document.getElementById("foo");
      var chkBox = document.getElementById(elemId);
      var options = document.getElementsByName('checkbox1');

       if(document.getElementById(elemId).checked) {    
   alert("checked");         
 arr.push(elemId);  
     }
       else { 
          for(var i = arr.length; i>=0; i--){
      if(arr[i]==elemId){
        arr.splice(i,1);
         break;
               }
      }
            }

      for(var i = (arr.length-1); i>=0; i--){
       alert("checked value list ::"+arr[i]);

      }


   }

arr=新数组();
函数更新优先级(elemId){
var elem=document.getElementById(“foo”);
var chkBox=document.getElementById(elemId);
var options=document.getElementsByName('checkbox1');
if(document.getElementById(elemId.checked){
警报(“已检查”);
arr.push(elemId);
}
否则{
对于(变量i=arr.length;i>=0;i--){
if(arr[i]==elemId){
阵列拼接(i,1);
打破
}
}
}
对于(变量i=(arr.length-1);i>=0;i--){
警报(“检查值列表::”+arr[i]);
}
}

我以相反的顺序得到输出。这不是一个问题,因为我可以从Java方面轻松地处理这个问题。

非常感谢大家。最后,我根据大家的建议得出了结果。 我用过: JavaScript代码

    <script type="text/javascript">

    arr = new Array();

    function updatePriority(elemId){

      var elem = document.getElementById("foo");
      var chkBox = document.getElementById(elemId);
      var options = document.getElementsByName('checkbox1');

       if(document.getElementById(elemId).checked) {    
   alert("checked");         
 arr.push(elemId);  
     }
       else { 
          for(var i = arr.length; i>=0; i--){
      if(arr[i]==elemId){
        arr.splice(i,1);
         break;
               }
      }
            }

      for(var i = (arr.length-1); i>=0; i--){
       alert("checked value list ::"+arr[i]);

      }


   }

arr=新数组();
函数更新优先级(elemId){
var elem=document.getElementById(“foo”);
var chkBox=document.getElementById(elemId);
var options=document.getElementsByName('checkbox1');
if(document.getElementById(elemId.checked){
警报(“已检查”);
arr.push(elemId);
}
否则{
对于(变量i=arr.length;i>=0;i--){
if(arr[i]==elemId){
阵列拼接(i,1);
打破
}
}
}
对于(var i=(arr.len