如何检查复选框是不是被选中?

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 的元素。 &lt;div id="remember" data-role="fieldcontain"&gt;&lt;input id="remember" name="remember" type="checkbox" onclick="validate()" /&gt;。没有一个答案发现了这个问题。 【参考方案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。它只是因为两个错误而工作。实际上值是truefalse,他应该只使用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")
    
&lt;input id="remember" name="remember" type="checkbox" onclick="validate(this)" /&gt;

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")
    
)
&lt;input id="remember" name="remember" type="checkbox"/&gt;

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>

【讨论】:

我建议你使用 attr onclick 或者使用 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 中声明)?

Django检查复选框是不是被选中

如何检查是不是选中了复选框[重复]

Angular Material - 如何检查 selenium java 中是不是选中了复选框?

使用jquery检查复选框是不是被选中