最近突然发现 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 2012-02-27 09:55 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
也都是 同样的处理思路。
看来还是那句老话,要想走捷径就得承担潜在性的风险。
=====================================================================
17:58 2019/6/19 转自https://huahuaren.iteye.com/blog/1725698 侵删 感谢原作者 谢谢