关于JQuery设置checkbox checked 的问题

近日做一个关于JQuery表单验证,有一个比较奇葩的要求,即checkbox是为必填项,textbox不是必填的。

而checkbox与textbox又是相关的,填写了textbox,则其上方的checkbox即相当于勾选。在使用中,用户很容易只注意到textbox,忽视checkbox,而不勾选,造成验证不通过。

所以想通过程序,在验证之前先判断textbox是否有值,如果有值,则自动勾选checkbox,再进行验证。

最初的代码如下:

if ($("#ZYAreaBC").val() != null) {
        if ($("#ZYAreaBC").val() != "") {
            $("#ChkSYBC").attr("checked", true);
        }
    }
    if ($("#ZYElseBC").val() != null) {
        if ($("#ZYElseBC").val() != "") {
            $("#ChkHBBC").attr("checked", true);
        }
    }

调试过程中,出现很奇怪的异常,该项不一定通过验证,且checkbox的状态一直是未选中的状态。但是再调试过程中查看checkbox的值,是有值的。

本以为是JQuery无法验证通过代码设置的值,再谷歌不正常的情况下到处找资料,终于发现是checkbox设置值的问题,JQuery1.6之后,使用如下代码设置

checkbox的的选中与否

$(‘.myCheckbox‘).prop(‘checked‘, true);
$(‘.myCheckbox‘).prop(‘checked‘, false);

参考如下帖子:http://stackoverflow.com/questions/426258/checking-a-checkbox-with-jquery

修改代码,修改后调试正常通过

if ($("#ZYAreaBC").val() != null) {
        if ($("#ZYAreaBC").val() != "") {
            $("#ChkSYBC").prop(‘checked‘, true); ;
        }
    }
    if ($("#ZYElseBC").val() != null) {
        if ($("#ZYElseBC").val() != "") {
            $("#ChkHBBC").prop(‘checked‘, true); ;
        }
    }
时间: 2024-10-21 23:12:13

关于JQuery设置checkbox checked 的问题的相关文章

jquery 设置checkbox的checked属性 总是出问题

所使用的jquery版本为jquery-1.9.1,浏览器为Chrome 1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase <input type="checkbox" id="selectAll" onclick="checkAll()">全选 function checkAll() {   var checkedOfAll=$("#selectAll

jQuery设置checkbox全选(区别jQuery版本)

jQuery设置checkbox全选在网上有各种文章介绍,但是为什么在我们用他们的代码的时候就没有效果呢? 如果你的代码一点错误都没有,先不要急着怀疑人家代码的正确性,也许只是人家跟你用的jQuery版本不同而已. jQuery很多版本都会对一些小的功能做一些改进,比如checkbox的选中. jQuery对checkbox改动的界线版本 jquery1.9.1. jquery1.9.1之前,全选是这样的: $('#checkbox').attr('checked',true) $('#chec

JQuery 设置checkbox select radio 为“只读”

JQuery  设置checkbox select radio 为“只读”,通过测试知道使用HTML标签的 text 和 textarea .button 可以设置readonly="readonly"属性. 但是checkbox .select. radio 这三个控件使用起来不能使用readonly="readonly"属性,只有 disabled="disabled"可以使用. 这样就出现问题了.又想不让修改,又想在后台获取值.如果使用di

JQuery设置checkbox选中或取消等相关操作

$("[name='checkbox']").attr("checked",'true');//全选 $("[name='checkbox']").removeAttr("checked");//取消全选 $("[name='checkbox']:even").attr("checked",'true');//选中所有奇数 //获取选择的值 var str=""; $

jquery 设置checkbox选中 和获取选中值

经常用到经常网上搜,这次写下来. 1,设置选中: $('#nrowid').prop('checked', false); 2,取选中项的值: $('#nrowid').prop("checked") || false; jquery 设置checkbox选中 和获取选中值

jquery设置checkbox状态,设置dropdownlist选中值,隐藏某控件,给某控件追加东西

jquery设置checkbox状态 $("[ID$=chkType]").attr("checked", true); jquery设置dropdownlist选中值 $("[ID$=ddlSTATUS]").val("Not Submitted"); jquery隐藏某控件 $("[ID$=MEMO]").parent().parent().hide(); jquery给某控件追加Label $(&qu

高版本jQuery设置checkbox状态注意事项

jQuery 1.9 以后, 使用 .attr(“checked”, true) 或  attr(“checked”, “checked”) 将无法正确设置 checkbox的状态, 同样的, 使用 .attr(“checked”) 也无法正确获取checkbox的状态 请从看到这篇文章开始, 使用 .prop(“checked”, true) 和 .prop(“checkbox”) 来设置和获取checkbox的勾选状态, 处于历史的考虑, 您可能更习惯使用 .is(“:checked”) 来

点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find.find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了.然后判断状

jquery与checkbox的checked属性的问题

1.页面加载成功后,点击选中或取消选中该checkbox,checkbox属性里的checked属性不会根据该checkbox是否选中而变化 2.checkbox里的onchange或onclick方法里用jquery的attr方法获取checked是看得到的checked属性的值与它是否给钩上没有关系 3.使用document.getElementById("checkbox_id").checked获取的值与是否钩上一至,即与所见即所得 4.使用$("#checkbox_