我一直在努力制作一个包含3个字段的简单应用:
<div id = "nameInput" >Name:</div><input id = "nameInputField" type = "text" name = "userName" />
<div id = "emailInput" >Email:</div><input id = "emailInputField" type = "text" name = "email" />
<input id = "termsCheck" type = "checkbox" name = "terms" />
我遇到的问题是我一直需要尝试将其包装在一个表单中以使复选框在注册时注册为已检查。我不想使用表格,因为我不想提交任何内容。
这里也是复选框的JS。它始终标记为未选中:
if ($('#terms').checked == true) {
//Rest of code
有没有办法在不使用表格的情况下完成此操作,或者是否有理由认为我的复选框从未注册为已选中?
答案 0 :(得分:24)
<input id = "termsCheck" type="checkbox" name="terms" />
JS:
pre jQuery 1.6:
if($('#termsCheck').is(':checked')){}
在jQuery 1.6之后:
if($('#termsCheck').prop('checked')){}
答案 1 :(得分:4)
两个问题。
首先,您引用的是输入名称而不是ID。
其次,为了使用checked
属性,必须在DOM元素上完成,而不是jQuery对象。
if( $('#termsCheck')[0].checked ) {
// ...
}
这是访问jQuery对象的索引0
处的DOM元素,然后访问其checked
属性。
您还可以使用get()
[docs]方法检索DOM元素。
if( $('#termsCheck').get(0).checked ) {
// ...
}
答案 2 :(得分:2)
如果您不想使用jQuery,可以执行以下操作:
<input id = "termsCheck" type = "checkbox" name = "terms" />
并以这种方式参考:
if (document.getElementById("termsCheck").checked) {
}
答案 3 :(得分:1)
您需要以不同方式检查已检查状态
$('#terms').is(":checked")
答案 4 :(得分:1)
jquery对象(我假设您正在使用)没有选中的字段 所以填补是假的是
你可以做的是
$("#terms").is(":checked")