我有多个复选框和另一个“全选”复选框
我想检查用户是否至少选中了一个复选框。需要在javascript中进行修改
<script language="Javascript">
function doSubmit(){
function check_checkboxes()
{
checked=false;
var c = document.getElementsByTagName('INPUT');
for (var i = 1; i < c.length; i++)
{
if (c[i].type == 'checkbox')
{
if (c[i].checked) {
return true}
else {alert("Please identify what warehouses comply:"); }
}
} //if I place my struts action here..its not working?
}
document.holiDay.command.value= 'addingApp'; //My Struts action if something checked.
document.holiDay.submit();
}
答案 0 :(得分:4)
var all=document.getElementById('holiDay');
在HTML中,ID应该是唯一的,因此getElementById只返回1个元素。也许你可以试试getElementsByTagName - http://msdn.microsoft.com/en-us/library/ms536439(VS.85).aspx?
像...一样的东西。
function check_checkboxes()
{
var c = document.getElementsByTagName('input');
for (var i = 0; i < c.length; i++)
{
if (c[i].type == 'checkbox')
{
if (c[i].checked) {return true}
}
}
return false;
}
并将您的验证功能更改为...
function Validate()
{
if(!check_checkboxes())
{
alert("Please identify what warehouses comply:");
return false;
}
return true;
}
答案 1 :(得分:3)
使用jqQery选中至少一个复选框。请尝试以下代码。
$('input[type="checkbox"][name="class"]').on('change', function () {
var getArrVal = $('input[type="checkbox"][name="class"]:checked').map(function () {
return this.value;
}).toArray();
if (getArrVal.length) {
//execute the code
} else {
$(this).prop("checked", true);
alert("Select at least one column");
return false;
}
;
});
答案 2 :(得分:0)
(function() {
for(x in $ = document.getElementsByTagName("input"))
with($[x])
return (type == "checkbox" ? checked == true : 0)
})