Html:

<table>

<tr><th class="w1">党内职务</th><td colspan="3" class="dangneizhiwu"><input id="txt_dangneizhiwu" class="form-control input-lg" type="text" placeholder="" disabled onclick="dangneizhiwuEvent(event)">

<div class="dangneizhiwuBox none" id="dangneizhiwuBox">

<ul>

<li class="noSub"><label><input type="radio" name="dangneizhiwu" id="dangneizhiwu1" value="01">党员</label></li>

<li class="noSub"><label><input type="radio" name="dangneizhiwu" id="dangneizhiwu2" value="02">党支部书记</label></li>

<li class="noSub"><label><input type="radio" name="dangneizhiwu" id="dangneizhiwu3" value="03">党支部副书记</label></li>

<li class="hasSub">

<label class="has">党支委员</label>

<ul class="subUL">

<li><label><input type="checkbox" value="04">组织委员</label></li>

<li><label><input type="checkbox" value="05">宣传委员</label></li>

<li><label><input type="checkbox" value="06">纪律委员</label></li>

<li><label><input type="checkbox" value="07">保密委员</label></li>

<li><label><input type="checkbox" value="08">青年委员</label></li>

<li><label><input type="checkbox" value="09">统战委员</label></li>

<li><label><input type="checkbox" value="10">妇女委员</label></li>

</ul>

</li>

</ul>

</div>

<input type="hidden" id="dangneizhiwuValue" value="" />

</td></tr>

</table>

Js:

function dangneizhiwuEvent(event) {

var $txt_dangneizhiwu = $("#txt_dangneizhiwu");

var $dangneizhiwuValue = $("#dangneizhiwuValue");

var $dangneizhiwuBox = $("#dangneizhiwuBox");

var $radio = $dangneizhiwuBox.find("li.noSub").find("input");

var $checkbox = $dangneizhiwuBox.find("ul.subUL").find("input");

event.stopPropagation();

$dangneizhiwuBox.toggleClass("none");

//初始化

var ary = $txt_dangneizhiwu.val().split(",");

var ary2 = $dangneizhiwuValue.val().split(",");

var len = ary.length;

var len2 = $dangneizhiwuBox.find("input").length;

if (ary[0] == "") {

ary.splice(0, 1);

ary2.splice(0, 1);

}

for (var i = 0; i < len; i++) {

for (var j = 0; j < len; j++) {

if (ary[i] == $dangneizhiwuBox.find("input").eq(j)) {

$dangneizhiwuBox.find("input").eq(j).attr("checked", "checked");

}

}

}

//单选

$radio.off("click").click(function () {

var $this = $(this);

var name = $.trim($this.parent().text());

var val = $this.val();

$checkbox.removeAttr("checked");

ary=[name];

ary2=[val];

$txt_dangneizhiwu.val(ary);

$dangneizhiwuValue.val(ary2);

});

//多选

$checkbox.off("click").click(function () {

var $this = $(this);

var name = $.trim($this.parent().text());

var val = $this.val();

$radio.removeAttr("checked");

if ($this.is(':checked')) {//勾选

//计算勾选个数,点击的时候已算一个勾选数,所以下边if checkLen=1

checkItem = [];

for (k in $checkbox) {

if ($checkbox[k].checked)

checkItem.push($checkbox[k].value);

}

checkLen = checkItem.length;

if (checkLen == 1) {//勾选个数为1时

ary = [name];

ary2 = [val];

} else {

ary.push(name);

ary2.push(val);

}

if (ary.length > 2) {

layer.msg("勾选不能超过两项");

ary.pop();

ary2.pop();

$this.removeAttr("checked");

}

} else {//取消勾选

ary.splice($.inArray(name, ary), 1);

ary2.splice($.inArray(val, ary2), 1);

}

$txt_dangneizhiwu.val(ary);

$dangneizhiwuValue.val(ary2);

});

$(document).click(function () {

$dangneizhiwuBox.addClass("none");

});

$dangneizhiwuBox.click(function (event) {

event.stopPropagation();

});

}

HTML:

<th>党员类别</th><td class="tanchu"><input type="text" class="form-control" id="partyMembersCategory" readonly placeholder="">

<div class="tanchuBox none" id="partyMembersCategoryBox">

<ul class="clearfix">

<li class="all"><label><input type="checkbox" value="00">全选/反选</label></li>

<li><label><input type="checkbox" value="01">正式党员</label></li>

<li><label><input type="checkbox" value="02">预备党员</label></li>

<li><label><input type="checkbox" value="03">已开除党籍</label></li>

</ul>

</div>

<input type="hidden" id="partyMembersCategoryValue" value="" />

</td>

JS:

function popPartyMembersCategory(){

var $input=$("#partyMembersCategory");

var $box=$("#partyMembersCategoryBox");

var $value=$("#partyMembersCategoryValue");

var $all=$box.children("ul").find("li.all").find("input");

var $checkbox=$box.find("li.all").siblings().find("input");

var checkboxLen=$checkbox.length;

var ary=[];

var ary2=[];

if (ary[0] == "") {

ary.splice(0, 1);

ary2.splice(0, 1);

}

$input.click(function(event){

$box.toggleClass("none");

event.stopPropagation();

});

//单选

$checkbox.click(function(){

var $this = $(this);

var name = $.trim($this.parent().text());

var val = $this.val();

if ($this.is(':checked')) {//勾选

ary.push(name);

ary2.push(val);

//如勾完所有CheckBox,自动勾选全选

checkedItem = [];

for (k in $checkbox) {

if ($checkbox[k].checked)

checkedItem.push($checkbox[k].value);

}

checkedLen = checkedItem.length;

if(checkedLen==checkboxLen){

if(!$all.is(':checked')){

$all.prop("checked",true);

}

}

} else {//取消勾选

ary.splice($.inArray(name, ary), 1);

ary2.splice($.inArray(val, ary2), 1);

//取消全选

if($all.is(':checked')){

$all.prop("checked",false);

}

}

$input.val(ary);

$value.val(ary2);

});

//全选

$all.click(function(){

var $this=$(this);

ary=[];

ary2=[];

if ($this.is(':checked')) {

$checkbox.prop("checked",true);

for(k in $checkbox){

if($checkbox[k].checked){

ary.push($checkbox.eq(k).parent().text());

ary2.push($checkbox.eq(k).val());

}

}

}else{

$checkbox.prop("checked",false);

}

$input.val(ary);

$value.val(ary2);

});

$(document).click(function(){

$box.addClass("none");

});

$box.click(function(event){

event.stopPropagation();

});

}

popPartyMembersCategory();

radio和checkbox的js勾选使用的更多相关文章

  1. js勾选时显示相应内容

    使用环境,一.比如用户勾选时显示一些安全方面提示“你真的要自动登录吗?这将使你下次不需要密码即可进入你的个人中心.”二.显示其他预设选项,以方便用户选择输入,比如密保问题设置,当用户不想使用自定义设置 ...

  2. jquery如何让checkbox如何取消勾选

    1.取消勾选 $("checkbox").attr("checked", false); 2.勾选 $("checkbox").attr(& ...

  3. input控件的checkbox属性自定义勾选框

    思路 首先隐藏input默认勾选框    通过绑定label标签,设置label的样式来设置勾选框 效果 在这里插入图片描述代码 # html中input的checkbox定义,使用for循环创建多个 ...

  4. 获取EasyUI的treegrid的checkbox所有已勾选的数据

    EasyUI为TreeGrid的已勾选节点,未勾选节点,只勾选部分子节点的父节点分别添加了三个不同的样式,如下:样式一:tree-checkbox2 有子节点被选中样式二:tree-checkbox1 ...

  5. Datagridview 中的checkbox 选中或勾选状态失效

    1.问题描述,先选中第一行,再取消选择,然后点击部门全选,第一行没有打钩,状态是不选中的状态. 2.分析代码 先选中第一行,单元格的单击事件中 改变选中状态为1,第一行取消选择,单元格的单击事件中 改 ...

  6. checkbox属性checked="checked"通过js已设置,但是不勾选

    1.通过 attr('checked','checked') 来设置checkbox时,重复点击,虽然checked属性设置正确,但是checkbox没有被勾选 ,如下代码:(代码是全选功能) $(' ...

  7. 用DIV遮罩解决checkbox勾选无效的问题

    在前端开发的过程中,遇到一种情况,需要勾选,为了用户的操作便捷就将click事件放到了DIV上.(其中使用了knockout.js) 代码大概如下: <div id="one" ...

  8. 前端开发:css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。

    前言: 都说程序员有三宝:人傻,钱多,死得早.博主身边的程序“猿”一大半应了这三宝,这从侧面说明了一个问题,只有理性是过不好日子的.朋友们应该把工作与生活分开,让生活变得感性,让工作变得理性,两者相提 ...

  9. JQuery实现表格的全选和反选,以及分页勾选保存(laypage插件分页的使用)

    需求: 1.全选与取消全选 2.单个勾选,点击表格单元格中checkbox勾选,也可以在点击行勾选,便与用户操作 3.分页勾选保存 4.固定表头 功能一: 说明:操作全选按钮的同时,遍历每一个tr中的 ...

随机推荐

  1. 应用安全测试技术DAST、SAST、IAST对比分析【转】

    转自:https://blog.csdn.net/qq_29277155/article/details/92411079 一.全球面临软件安全危机 2010年,大型社交网站rockyou.com被曝 ...

  2. H5视频播放小结(video.js不好用!!!)

    近期在做一个H5的视频课堂,遇到了H5播放的需求,因为原生的video的样式不太理想,尤其是封面无法压住控制条,这就需要我们自定义播放控件. 于是,找了很近的插件,找到了用户比较多的video.js插 ...

  3. learning java FileInputStream

    public class FileInputStreamTest { public static void main(String[] args) throws IOException { var f ...

  4. Windbg命令脚本流程控制语句详解

    在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解.这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等. ; (命令分隔符) 分号(:)字符 ...

  5. 保护 SSH 的三把锁

    转自:https://www.ibm.com/developerworks/cn/aix/library/au-sshlocks/index.html 简介 如果需要远程访问计算机并启用了 Secur ...

  6. 函数(定义、参数、return、变量、作用域、预解析)

    一.函数定义 1.方式一       function 函数名(参数){  函数体  }——————函数声明的方法 function fn(a){ console.log(a); }: 2.方式二  ...

  7. 2016android在线测试15-图像 camera2

    1.ImageView类用于显示各种图像,例如:图标,图片,下面对于ImageView类加载图片方法的描述有: void setImageResource(int resld): 设置Drawanbl ...

  8. 逆向对抗技术之ring3解除文件句柄,删除文件

    目录 一丶简介 二丶实战 + 环境模拟 1.环境模拟. 2.删除原理 3.代码实现 一丶简介 这些问题主要是工作中会遇到.包括后面的逆向对抗技术.有的可能只会提供思路.并且做相应的解决与对抗. 二丶实 ...

  9. vue引入nutUI

    这段时间需要做一个移动端项目,我需要选着用哪个UI库,其它的UI库没多看,看了看mintUI和nutUI,感觉mintUI的功能要比nutUI的功能少点,mintUI是饿了么团队开发的,而nutUI是 ...

  10. Beta冲刺(3/5)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 数据库实践的报告 提交记录(全组共用) 接下来的计划 加快校园百科的进度 还剩下哪些任务 学习软工的理论课 学习代码评估. ...