0

我的 PHP 表单(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 和 orgnaisation.php 中进行验证,并在提交 organization.php 时调用了该函数,但它不起作用。

服务器端验证工作正常,但如果也有客户端验证的方法将不胜感激

4

3 回答 3

1

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;
}
于 2013-10-21T11:11:02.463 回答
0

更好的是,您应该通过为它们保持相同的名称来创建一组这些复选框。就像以后添加更多输入元素一样,它不会影响代码。

于 2013-10-21T10:54:03.890 回答
0

尝试这样的事情

    // chkbx class on checkbpx element
    var flag = false
    jQuery('.chkbx').each(function(){
        if(this.checked){
            flag = true;
        }
    })

    return flag;// true if checked else false
于 2013-10-21T11:25:02.750 回答