0

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

4

6 回答 6

1

尝试使用

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

这将返回 true 或 false

于 2012-12-18T18:41:59.587 回答
1

可能不是最好的方法,但可以通过使用单选按钮的 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>
于 2012-12-18T19:31:32.570 回答
1

HTML 没有允许您对值进行排序的控件。您将不得不使用 JavaScript 来跟踪单击的顺序(或每次选择提交表单)。

最简单的方法是隐藏一个输入,您hidden.value += this.value可以在复选框上单击事件。

如果取消选中复选框并实现它,您将需要决定您的业务逻辑会发生什么。

于 2012-12-18T16:49:54.353 回答
0

非常感谢大家。最后我根据大家的建议得到了结果。我用过: 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]);

      }


   }

我以相反的顺序获得输出。这不是问题,因为我可以从 Java 端轻松处理这个问题。

于 2012-12-19T12:11:00.640 回答
0

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

例如:最初 hidden_​​variable=""

当用户选择 B 时,hidden_​​variable="B" 当用户选择 C ​​时,hidden_​​variable="B,C" 像这样。

如果用户取消选择一个值,则从 hidden_​​variable 中删除该值。

所有这些你都可以用一些基本的 js 功能来完成

于 2012-12-18T16:49:49.613 回答
0

只需使用 a<input type="hidden" id="myList"/>将值发送到 Java。

当复选框被选中/取消选中时,您调用一个 javascript 函数,该函数将复选框的值附加(或删除,使用 ofsubstringindexOf)到隐藏字段。

编辑:这是重复的:检测单击复选框的顺序

于 2012-12-18T16:50:13.737 回答