zoukankan      html  css  js  c++  java
  • Jquery 获取checkbox的checked问题

    这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠结。。。

    事实证明一切,自己测试了N遍,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现.

    下面来看看网上大多资料的说法

    转别人的一些东西:

    jquery判断checkbox是否被选中

    在html的checkbox里,选中的话会有属性checked="checked"。

    如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($(#xxx).attr("checked")),会打印出"true",而不是"checked"!

    如果没被选中,打印出的是"undefined"。


     注意红色的部分,这里说到

    $("#chekbox").sttr("checked")//should be print "true" ,  not "checked" 

    经过测试,证明上面说法有问题

    <script type="text/javascript">
    $(function() {
    $("#button").click(function() {
    alert($("#checkbox").attr("checked"));
    });
    });
    </script>

    <input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me">
    //上面得出的结果是: 如果勾上checkbox,会打印出 “checked” , 如果取消打勾 会打印出 "undefined"

    实验证明Jquery获取checked的值得打印出"true"是错误的

    举一反三:

    而且发现Jquery获取已经被勾上的checkbox,永远都是"checked" 这让人费解,如果有人知道为什么,可以告诉我一下,哈~~

    <script type="text/javascript">
    $(function() {
    $("#button").click(function() {
    alert($("#checkbox").attr("checked"));
    });
    });
    </script>

    <input type="checkbox" name="checkbox" id="checkbox" checked><input type="button" id="button" value="Click Me">
    //注意红色位置,如果默认checkbox为checked状态,测试会发现,把勾去掉也是只会输出"checked" , 表示不理解为什么 Jquery会这样


    解决方法,还是用document.get获取吧:

    <script>
    function getcheckbox(){
    var test = document.getElementById("checkbox").checked;
    alert(test);
    }
    </script>
    <input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me" onclick="getcheckbox()">
    //选中为"true",取消选中为"false"
  • 相关阅读:
    FreeRTOS——队列管理
    Replication Controller、Replica Set
    基本概念与组件
    YAML配置文件
    curl命令测试服务器是否支持断点续传
    浏览器http跳转至https问题
    常用Linux日志文件功能
    SSH连接时,长时间不操作就断开的解觉办法
    防HTTP慢速攻击的nginx安全配置
    Centos6.5升级安装openssh7.7p1
  • 原文地址:https://www.cnblogs.com/zh719588366/p/6044859.html
Copyright © 2011-2022 走看看