jquery的attr获取表单checked 布尔值问题



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
     <script src="http://code.jquery.com/jquery-1.11.3.js"></script>
    <title>Document</title>
    <script type="text/javascript">
    $(function(){
      $(‘#all‘).on(‘click‘,function(){
$(‘input:lt(4)‘).prop(‘checked‘,true);
//lt,gt是不包括临界的,
      });
         $(‘input:eq(5)‘).on(‘click‘,function(){
$(‘input:lt(4)‘).prop(‘checked‘,false);
      });

      $(‘#btn‘).click(function(){
var $att=$(‘input:checkbox‘).prop(‘checked‘);
// var $att=$(‘input:checkbox‘).attr(‘checked‘ 总是弹出undefined
// alert($att);
if($att==false){
    // $(‘input[checked=true]‘).attr(‘checked‘,false);
    $(‘input:checkbox‘).prop(‘checked‘,true);
}
else{
$(‘input:checkbox‘).prop(‘checked‘,false);
}
// $(‘[name=hobby]:checkbox‘).each(function(){
//     this.checked=!this.checked;
//     //赋相反的值。
// })
 });
          });

    </script>
</head>
<body>
    <form action="">
    <label for=‘hobby‘>你爱好的运动是</label><br>
    <input type="checkbox" name="hobby" >足球
    <input type="checkbox" name="hobby" >篮球
    <input type="checkbox" name="hobby" >羽毛球
    <input type="checkbox" name="hobby" >乒乓球<br>
    <input type="button" value="全选" id=‘all‘>
    <input type="button" value="全不选">
    <input type="button" value="反选" id=‘btn‘>
<!--     <input type="button" value="提交"> -->
    </form>
</body>
</html>
<!-- 问题关键是attr获取不到checked的属性值,总是弹出undefined ,后来发现要用prop来获取值
前面的全选和反选用attr来设置checked值时候只能够设置一次, 二用prop可以设置多次
 -->
1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase
复制代码 代码如下:

<input type="checkbox" id="selectAll" onclick="checkAll()">全选
function checkAll()
{
var checkedOfAll=$("#selectAll").prop("checked");
alert(checkedOfAll);
$("input[name=‘procheck‘]").prop("checked", checkedOfAll);
}

2.如果使用attr方法获取时,如果当前input中初始化未定义checked属性,则不管当前是否选中,$("#selectAll").attr("checked")都会返回undefined;
复制代码 代码如下:

<input type="checkbox" id="selectAll" onclick="checkAll()" >全选

如果当前input中初始化已定义checked属性,则不管是否选中,$("#selectAll").attr("checked")都会返回checked.
复制代码 代码如下:

<input type="checkbox" id="selectAll" onclick="checkAll()" checked>全选
function checkAll()
{
var checkedOfAll=$("#selectAll").attr("checked");
alert(checkedOfAll);
$("input[name=‘procheck‘]").attr("checked", checkedOfAll);
}

总结,如果使用jquery,应使用prop方法来获取和设置checked属性,不应使用attr. 
时间: 2024-10-24 15:28:57

jquery的attr获取表单checked 布尔值问题的相关文章

在servlet中批量获取表单元素的值

如果页面有大量的表单元素,在springMVC中一般都是表单和pojo对象做相应的对应,或者直接通过request获得对象,但是还有另外一种得到表单元素的方法,具体代码如下: // java.util.Enumeration<String> req是HttpServletRequest对象 Enumeration<String> paras = req.getParameterNames(); while (paras.hasMoreElements()) { String s =

获取表单内按钮值方法单选框值

select值获取方式 <select id="areaId" name="areaId" onchange="chooseEvent()" style="width:100px"> <option classna="world" value="0"> 世界 </option> #foreach($item in $areaList) <opti

获取表单的初始值,模拟placeholder属性

input和textarea有一个默认属性defaultValue,即初始值. 即使在页面操作修改了input和textarea的内容,获取到的defaultValue依然是初始值.可通过该值模拟placeholder属性,而不额外添加任何属性,标签之类. js:  以input为例 jq: 完全模拟placeholder,无需添加任何额外属性和标签. textarea标签模拟过程完全一致:

jquery easyui将form表单元素的值序列化成对象

function serializeObject(form){ var o={}; $.each(form.serializeArray(),function(index){ if(o[this['name'] ]){ o[this['name'] ] = o[this['name'] ] + "," + this['value']; }else{ o[this['name'] ]=this['value']; } }) return o; } 把easyui中的form表单中查询条件

Ajax中通过JS代码自动获取表单元素值的示例代码

我们在使用Ajax的时候,通常需要获取表单元素值,然后发送给后台的服务器端程序处理.如果表单元素不多的情况我们常常会通过GET方式来获取表单元素值,但如果表单元素非常多,此时就需要用POST方式来获取表单元素值,那么如何来获取表单元素值呢?下面给出一段JS代码即可自动获取表单元素的值了 http://www.qidian.com/BookReader/1839917,60421843.aspx http://www.qidian.com/BookReader/1839917,60422045.a

jQuery获取表单各元素的值

radio值获取 $("input[type='radio']:checked").val(); 2,设置指定的项为当前选中项 $("input[type='radio']").eq(1).attr("checked",true);//设置第二项为选中项 <input type="text" name="textname" id="text_id" value="&quo

用jquery获取表单元素

表单验证需要获得表单元素,下面是获取表单元素的方法 例子: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>无标题页</title> <script src="js/jquery-1.6.min.js" type="text/javascript"></script

用jQuery获取表单的值

在日常开发过程中,有许多用到表单的地方.比如登录,注册,比如支付,填写订单,比如后台管理等等. 使用jQuery来获取表单的值是比较常见的做法. 常见表单 单行文字域:<input type='text'> <input type="text" id='name' value='pelli'> 密码域:<input type='password'> <input type="password" id='pass' value

第83天:jQuery中操作form表单

操作form表单 1. 属性操作 设置属性: // 第一个参数表示:要设置的属性名称 // 第二个参数表示:该属性名称对应的值 $(selector).attr("title", "传智播客"); 获取属性: // 参数为:要获取的属性的名称,改操作会返回指定属性对应的值 $(selector).attr("title"); 此时,返回指定属性的值 移除属性: // 参数为:要移除的属性的名称 $(selector).removeAttr(&qu