我在 jsp 页面中有四个复选框。我想按照它们被选中的顺序获取它们的值。假设复选框的值是 A、B、C、D。如果我先选择 B,然后选择 D,然后选择 A,最后选择 C。我应该得到 B、D、A、C。我需要将这些值发送到 java。
6 回答
尝试使用
$('#isAgeSelected').attr('checked')
这将返回 true 或 false
可能不是最好的方法,但可以通过使用单选按钮的 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>
HTML 没有允许您对值进行排序的控件。您将不得不使用 JavaScript 来跟踪单击的顺序(或每次选择提交表单)。
最简单的方法是隐藏一个输入,您hidden.value += this.value
可以在复选框上单击事件。
如果取消选中复选框并实现它,您将需要决定您的业务逻辑会发生什么。
非常感谢大家。最后我根据大家的建议得到了结果。我用过: 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 端轻松处理这个问题。
1)添加一个新的隐藏输入字段。2)根据用户选择填充值 3)在服务器读取隐藏变量。
例如:最初 hidden_variable=""
当用户选择 B 时,hidden_variable="B" 当用户选择 C 时,hidden_variable="B,C" 像这样。
如果用户取消选择一个值,则从 hidden_variable 中删除该值。
所有这些你都可以用一些基本的 js 功能来完成
只需使用 a<input type="hidden" id="myList"/>
将值发送到 Java。
当复选框被选中/取消选中时,您调用一个 javascript 函数,该函数将复选框的值附加(或删除,使用 ofsubstring
和indexOf
)到隐藏字段。
编辑:这是重复的:检测单击复选框的顺序