检查JS中是否选中了复选框

时间:2012-03-04 20:23:53

标签: javascript checkbox

我是js和jquery的新手。目前,我在form.php处有一个表单,其中包含一个复选框。当用户单击“提交”时,表单变量将发送到form.js文件,其中每个值都被检查为空值。

form.js文件完美无缺,然而,对于复选框,似乎没有任何事情发生。我有一种感觉,这是由于我声明变量的方式。

以下是js文件的代码:

var email = $('#email').val();
var website = $('#website').val();
var CHECKBOX = $('CHECKBOX').val();
...
...
if (CHECKBOX.checked == FALSE){
    var error = true;
    $('#notchecked_error').fadeIn(500);
}else{
    $('#notchecked_error').fadeOut(500);
}

4 个答案:

答案 0 :(得分:0)

尝试使用:

if ( $('#CHECKBOX').prop("checked") )

或:

if ( $('#CHECKBOX').is(":checked") )

另外,请确保复选框的选择器正确无误。

答案 1 :(得分:0)

$('input[type=checkbox]:checked') // If you have multiple checkboxes you can use this and loop through them to get additional info
$('#checkboxID:checked').length // To get one specific checkbox

答案 2 :(得分:0)

我在你的代码中看到两个问题。第一个是CHECKBOX分配中的选择器有故障。它应该是

var CHECKBOX = $('#CHECKBOX').val();

var CHECKBOX = $('input[type=checkbox]').val();

第二个问题是你正在从val()函数中读取CHECKBOX.checked,你需要从复选框本身读取它。

if(CHECKBOX.checked)

答案 3 :(得分:0)

`$('CHECKBOX').val();`

将尝试查找标记名为CHECKBOX的元素并返回其值。大概你想要引用ID为CHECKBOX的复选框:

var CHECKBOX = $('#CHECKBOX');

查看是否已选中:

if (!CHECKBOX[0].checked) {
  // CHECKBOX is not checked
}

在使用jQuery之前,你真的应该学习基本的javascript。通常验证是从表单提交启动的,这可以为您提供表单。然后,您可以将所有表单元素作为表单的属性引用,您不需要创建所有这些jQuery对象。例如如果你的形式是这样的:

<form ... onsubmit="validate(this)"... >
  <input type="checkbox" name="checkbox">
</form>

然后在验证功能中:

function validate(form) {
  if (!form.checkbox.checked) {
    // the checkbox isn't checked
  }
}

如果愿意,您可以动态附加侦听器。