如何检查复选框是不是被选中?
Posted
技术标签:
【中文标题】如何检查复选框是不是被选中?【英文标题】:How can I check if a checkbox is checked?如何检查复选框是否被选中? 【发布时间】:2021-08-21 02:32:10 【问题描述】:我正在使用 jQuery Mobile 构建一个移动 Web 应用程序,我想检查是否选中了一个复选框。这是我的代码。
<script type=text/javascript>
function validate()
if (remember.checked == 1)
alert("checked") ;
else
alert("You didn't check it! Let me check it for you.")
</script>
<input id="remember" name="remember" type="checkbox" onclick="validate()" />
但由于某种原因,它没有执行它。
请帮忙!
----编辑----- 这是我目前拥有的。
<DIV data-role="content" data-theme="g">
<DIV class=ui-grid-g-login>
<FORM method=post action=[$=PROBE(266)/] data-theme="C">
<P>~DATA_ERROR~</P>
<div id="mail" data-role="fieldcontain">
<label for="mail">Email:*</label>
<input id="mail" name="mail" type="email" />
</div>
<div id="pass" data-role="fieldcontain">
<label for="pass">Paswoord:*</label>
<input id="pass" name="pass" type="password" />
</div>
<div id="remember" data-role="fieldcontain">
<label for="remember">Onthoud mij</label>
<input id="remember" name="remember" type="checkbox" onclick="validate()" />
</div>
<P><INPUT class=btn name=submit value=Login type=submit onclick="validate()"></P>
</FORM>
</DIV>
</DIV><!-- /content -->
<script type=text/javascript>
function validate()
var remember = document.getElementById('remember');
if (remember.checked)
alert("checked") ;
else
alert("You didn't check it! Let me check it for you.")
</script>
----编辑--
解决了,问题是fieldcontain也被命名为'remember'
【问题讨论】:
在这种情况下remember
是什么:if (remember.checked == 1)
???
以后应该记住email和密码了。这是一个登录页面
我想说的是remember
在这种情况下是undefined
。试试console.log(remember);
。
您使用的是哪个版本的 html?这不是真正的 XHTML,是吗?
正如@Steaphann 在编辑中提到的那样,代码不起作用,因为 html 中有 两个 具有相同 id 的元素。 <div id="remember" data-role="fieldcontain">
和 <input id="remember" name="remember" type="checkbox" onclick="validate()" />
。没有一个答案发现了这个问题。
【参考方案1】:
checked
是一个boolean
属性,所以你可以直接在if
条件中使用它
<script type="text/javascript">
function validate()
if (document.getElementById('remember').checked)
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
</script>
【讨论】:
我总是收到“你没有检查它!让我帮你查一下。' 不,它对我来说工作正常;我收到两条警报消息。 @Steaphann 您是否将“记住”一词替换为您的复选框 ID? ...哦,刚刚注意到 2012 0.o ...p.s.您忘记了第二条警报语句后的分号 ..如果我不想让它为我检查它,我只想看看它是否被检查? @josh.thomson 分号是可选的。【参考方案2】:试试这个:
function validate()
var remember = document.getElementById("remember");
if (remember.checked)
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
您的脚本不知道变量remember
是什么。您需要先使用 getElementById() 获取元素。
【讨论】:
你还应该建议去掉== 1
。它只是因为两个错误而工作。实际上值是true
或false
,他应该只使用if( remeber.checked )
我总是收到“你没有检查它!让我帮你查一下。'【参考方案3】:
这应该允许您检查带有id='remember'
的元素是否为'checked'
if (document.getElementById('remember').is(':checked')
【讨论】:
is
不属于DOM元素对象
.is()
- 是一个 jQuery 函数。 .checked
是 javascript。
为什么会有这么多赞?在缺少的括号和香草和 jquery 之间的混合之间。答案很糟糕,要么是$('#remember').is(':checked')
,要么是document.getElementById('remember').checked
,但混音永远行不通【参考方案4】:
如果您将此表单用于移动应用程序,那么您可以使用必需的属性 html5。 您不想为此使用任何 java 脚本验证。它应该工作
<input id="remember" name="remember" type="checkbox" required="required" />
【讨论】:
【参考方案5】:这样使用
<script type=text/javascript>
function validate()
if (document.getElementById('remember').checked)
alert("checked") ;
else
alert("You didn't check it! Let me check it for you.")
</script>
<input id="remember" name="remember" type="checkbox" onclick="validate()" />
【讨论】:
我总是收到“你没有检查它!让我帮你查一下。' @user1251632 WFM。您可以编辑您的问题并显示您现在拥有的内容吗?也许您犯了复制和粘贴错误。 document.getElementById('remember').checked == 1 在您发表评论之前被我更改了.. 这可能是问题所在。【参考方案6】:使用下面的简单代码: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/
<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">button</button>
<script>
function check()
if (document.getElementById('check').checked)
alert("checked");
else
alert("Not checked.");
</script>
【讨论】:
【参考方案7】://HTML
<input type="checkbox" id="someID">
// JavaScript
const someCheckbox = document.getElementById('someID');
someCheckbox.addEventListener('change', e =>
if(e.target.checked === true)
console.log("Checkbox is checked - boolean value: ", e.target.checked)
if(e.target.checked === false)
console.log("Checkbox is not checked - boolean value: ", e.target.checked)
);
know more
【讨论】:
【参考方案8】:这应该可以工作
function validate()
if ($('#remeber').is(':checked'))
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
【讨论】:
为我工作!无论出于何种原因,我对应该如此简单的事情感到困惑。【参考方案9】:我正在使用它,它适用于 Jquery:
Jquery:
var checkbox = $('[name="remember"]');
if (checkbox.is(':checked'))
console.log('The checkbox is checked');
else
console.log('The checkbox is not checked');
很简单,但是很管用。
问候!
【讨论】:
【参考方案10】:remember
未定义……checked
属性是布尔值而不是数字。
function validate()
var remember = document.getElementById('remember');
if (remember.checked)
alert("checked") ;
else
alert("You didn't check it! Let me check it for you.")
【讨论】:
【参考方案11】:if (document.getElementById('remember').checked)
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
【讨论】:
【参考方案12】:remember
变量未定义。所以试试这个方法:
function validate()
var remember = document.getElementById("remember");
if (remember.checked)
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
【讨论】:
【参考方案13】:您可以使用纯 JS 和 jQuery 使用这个简单有效的代码。
使用验证函数作为onclick attr
function validate(el)
if (el.checked)
alert("checked")
else
alert("unchecked")
<input id="remember" name="remember" type="checkbox" onclick="validate(this)" />
或
using pure JS
document.addEventListener("DOMContentLoaded", function(event)
//using pure Js code
let chk = document.getElementById("remember");
if (chk.checked)
alert("checked")
else
alert("unchecked")
)
<input id="remember" name="remember" type="checkbox"/>
using jQuery
$(document).ready(function ()
//using jQuery code
$('#remember').on('change', function (e)
if (e.currentTarget.checked)
alert("checked")
else
alert("unchecked")
)
)
<input id="remember" name="remember" type="checkbox"/>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
【讨论】:
我建议你使用 attronclick
或者使用 jQuery 代码。【参考方案14】:
你可以试试这个:
if ($('#remember').is(':checked'))
alert('checked');
else
alert('not checked')
【讨论】:
【参考方案15】:使用下面的简单代码: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/
<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">
button
</button>
<script>
function check()
if (document.getElementById('check').checked)
alert("checked");
else
alert("You didn't check it! Let me check it for you.");
</script>
【讨论】:
【参考方案16】:试试这个
<script type="text/javascript">
window.onload = function ()
var input = document.querySelector('input[type=checkbox]');
function check()
if (input.checked)
alert("checked");
else
alert("You didn't check it.");
input.onchange = check;
check();
</script>
【讨论】:
【参考方案17】:您也可以使用 JQuery 方法来完成此操作:
<script type="text/javascript">
if ($('#remember')[0].checked)
alert("checked");
</script>
【讨论】:
以上是关于如何检查复选框是不是被选中?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 android 复选框是不是在其 onClick 方法中被选中(在 XML 中声明)?