IE,firefox下jquery获取一组checkbox选中值的问题

   最近突然发现 IE,firefox下jquery获取一组checkbox选中值时有问题,自己在IE 7 8 兼容视图下 $("input   [type='checkbox'][checked]")是可以如实的获取页面的实际选中的情况,但在FF16.0.2 下则获取不到。

  调试时发现,在FF下需要 判断一下 if(checked)时 才会获取选中的实际情况,所以,统一将方法调整为:

 

 var unlockips = "";
    $("input[type='checkbox']").each(function(){
       if(this.checked) unlockips+=$(this).val()+",";      
     })
   // alert(unlockips);
   if(unlockips.length==0){
      alert("未选中选项");
      return ;
    }

处理完之后,浏览一下大家的处理方式:

 

http://hi.baidu.com/wuhao1014yi/item/fcf553d6549dc32339f6f7d1

【转】IE,firefox下jquery获取一组checkbox选中值的问题

HTML 代码:

<form>
<input type="checkbox" name="newsletter" checked="checked" value="Daily" />
<input type="checkbox" name="newsletter" value="Weekly" />
<input type="checkbox" name="newsletter" checked="checked" value="Monthly" />
</form>

jQuery 代码:

$("input:checked")

结果:

[ <input type="checkbox" name="newsletter" checked="checked" value="Daily" />, <input type="checkbox" name="newsletter" checked="checked" value="Monthly" /> ]

var check = $("input:checked"); //得到所有被选中的checkbox
   var actor_config;              //定义变量
   check.each(function(i){         //循环拼装被选中项的值
    actor_config = actor+','+$(this).val();
    });
   alert(actor_config.substr(9)+',');

通过以下js代码去获取选中项的值,在IE7中可以正确取得选中项的值,但在IE8中却得不到选中项的值,同样在Firefox 3.5.3下也得不到值,但公司同事在Firefox其他较低版本下能正确得到值,IE6下也没有问题,⊙﹏⊙b汗

$('#permissionList-body input[name="checkboxes"][checked]').each(function(i){ alert($(this).val());});

 

      但是把技术代码修改为:

$('#permissionList-body input[name="checkboxes"]').each(function(i){ if(this.checked)alert($(this).val());});===========================================================================$('#permissionList-body input[name="checkboxes"][checked]')$('#permissionList-body input[name="checkboxes"][checked='checked']')这两种写法支持 IE$('#permissionList-body input[name="checkboxes"][checked='true']')这种支持firefox没有找到好的解决方法,只有加 if(this.checked)判断了 jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关

获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;

获取值:

文本框,文本区域:$("#txt").attr("value");
多选框checkbox:$("#checkbox_id").attr("value");
单选组radio:   $("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();

控制表单元素:
文本框,文本区域:$("#txt").attr("value",'');//清空内容
                 $("#txt").attr("value",'11');//填充内容

多选框checkbox: $("#chk1").attr("checked",'');//不打勾
                 $("#chk2").attr("checked",true);//打勾
                 if($("#chk1").attr('checked')==undefined) //判断是否已经打勾

单选组radio:    $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select:   $("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
                $("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
                $("#sel").empty();//清空下拉框

// 清空所有复选框选项
      $(":checkbox").attr("checked","");

=========================================================== 以Name获得值的方法(我用的方法)var str="";
       $("input[name='newsletter']").each(function(){
           if(this.checked) str+=$(this).val()+",";       
       })
        alert(str);

firefox3.6 ie8 jQuery选择checkbox的问题

分类: Jquery/ajax PHP 163人阅读 评论(0) 收藏 举报

function getCheckboxValue($inputname){   

            //注意ie8和高版本的firefox不支持jquery 对checked的选择器   

            //var s=$(‘input[type="checkbox"][name="xxx"][checked]‘);是获取不到选定的元素   

            //需要用下面的方法获取选中节点   

 var str=”";
 var s=$(‘input[type="checkbox"][name="'+$inputname+'"]‘);            
 var postuserid = ”;  
 var postusertext=”;  
 $.each(s,function(i,n){  
   if (n.checked){ 
       str+=n.value+”,”;
    }  
  });
 if (str!=”")
 {
   str=str.substring(0,str.length-1);
   return str;
 }
 else
 {
   return false;
 }     

   }

http://blog.csdn.net/shunzi110/article/details/7297142

也都是 同样的处理思路。

看来还是那句老话,要想走捷径就得承担潜在性的风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值