My Php form (organisation.php) 有这个 JavaScript 验证
if(document.orgform.startdate.value == '')
{
alert('Enter Start Date');
document.orgform.startdate.focus();
return false;
}
if(document.orgform.enddate.value == '')
{
alert('Enter End Date');
document.orgform.enddate.focus();
return false;
} //these work fine
简讯
function getorgname(key)
{
var orgvalue = key.value;
$.ajax({
type:"POST",
url:"searchorg.php",
data:{orgname : orgvalue},
success: function(res) {
$('#org').html(res);
}
});
} //returns organisation names with checkboxes, working fine
组织部分的HTML部分如下:
<input type="text" name="startdate" id="sdate" >
<input type="text" name="enddate" id="edate">
<div id="organisation></div> //ajax returned values displayed here, working fine.
现在如何测试是否至少选中了一个复选框?
我尝试将验证放在ajaxorganisation.php以及orgnaization中.php并在提交organisation.php时调用该函数,但它不起作用。
服务器端验证工作正常,但如果也有客户端验证的方法,将不胜感激
A. 修复您的 html 代码。包含div id 属性缺少结尾双引号分隔符。
B. 每当您希望检查是否至少单击了一个时,请使用参数"#organisation"调用以下函数
function at_least_one_checked(container) {
var $c_list = $(container + ' input[type="checkbox"]');
for (var i = 0; i < $c_list.length; ++i)
if ($($c_list[i]).prop('checked'))
return true;
return false;
}
最好通过保留相同的名称来创建一组这些复选框。就像将来添加更多输入元素一样,它不会影响代码。
尝试这样的事情
// chkbx class on checkbpx element
var flag = false
jQuery('.chkbx').each(function(){
if(this.checked){
flag = true;
}
})
return flag;// true if checked else false