我在jsp页面中有四个复选框。我想按照选择的顺序获取它们的值。假设复选框具有值A,B,C,D。如果我选择第一个B,然后是D,则选择A,最后选择C.我应该得到B,D,A,C。我需要将这些值发送给java。
答案 0 :(得分:1)
HTML没有允许您订购值的控件。您必须使用JavaScript来跟踪点击内容的顺序(或者根据选择提交表单)。
最简单的方法是使用隐藏的输入hidden.value += this.value
复选框上的点击事件。
如果取消选中复选框并执行该操作,您需要决定业务逻辑。
答案 1 :(得分:1)
尝试使用
$('#isAgeSelected').attr('checked')
这将返回true或false
答案 2 :(得分: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>
答案 3 :(得分:0)
1)添加一个新的隐藏输入字段。 2)根据用户选择填充值 3)在服务器上读取隐藏的变量。
例如:最初hidden_variable =“”
当用户选择B时,hidden_variable =“B” 当用户选择C时,hidden_variable =“B,C”就像这样。
如果用户取消选择某个值,请从hidden_variable中删除该值。
所有这一切都可以用一些基本的js功能
答案 4 :(得分:0)
只需使用<input type="hidden" id="myList"/>
将值发送给Java。
选中/取消选中复选框后,您调用一个javascript函数,该函数将复选框的值附加(或删除,使用substring
和indexOf
)隐藏字段。
答案 5 :(得分: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端轻松处理这个问题。