我是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);
}
答案 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
}
}
如果愿意,您可以动态附加侦听器。