html复选框组,HTML : CheckBox 复选框成组联动(JavaScript)

function

CheckboxGroup(){

var

arrelement

=

document.all;

var

i

=

0

;

while

(i

<

arrelement.length){

var

forgroupattrib

=

arrelement[i].getAttribute(

'

forcheckboxgroup

'

);

if

(forgroupattrib

!=

null

&&

forgroupattrib

!=

''

){

arrelement[i].setAttribute(

'

groupmember

'

,_getGroupMember(arrelement[i]));

if

(arrelement[i].tagName.toLowerCase()

==

'

input

'

&&

arrelement[i].type

==

'

checkbox

'

){

arrelement[i].onclick

=

function

(){

//

----------------------Checked All------------------

var

groupmember

=

this

.getAttribute(

'

groupmember

'

);

var

i

=

0

;

while

(i

<

groupmember.length){

groupmember[i].checked

=

this

.checked;

i

++

;

}

//

---------------------------------------------------

}

}

_setState(arrelement[i]);

}

i

++

;

}

}

function

_getGroupMember(o){

var

groupname

=

o.getAttribute(

'

forcheckboxgroup

'

);

var

items

=

new

Array;

var

inputs

=

document.getElementsByTagName(

'

input

'

);

var

i

=

0

;

while

(i

<

inputs.length){

if

(inputs[i].type

==

'

checkbox

'

){

var

groupattrib

=

inputs[i].getAttribute(

'

group

'

);

if

(groupattrib

==

groupname){

items[items.length]

=

inputs[i];

var

master

=

inputs[i].getAttribute(

'

groupmaster

'

);

if

(master

==

null

) {

master

=

new

Array;

master[

0

]

=

o.uniqueID;

inputs[i].setAttribute(

'

groupmaster

'

, master);

}

else

{

master[master.length]

=

o.uniqueID;

}

inputs[i].onpropertychange

=

function

(){

if

(event.propertyName

==

'

checked

'

) {

var

arro

=

this

.getAttribute(

'

groupmaster

'

);

var

i

=

0

;

while

(i

<

arro.length) {

_setState(document.getElementById(arro[i]));

i

++

;

}

}

}

}

}

i

++

;

}

return

items;

}

function

_setState(o){

var

master

=

o;

if

(master

!=

null

){

var

chkselall

=

true

;

var

chknosel

=

true

;

var

groupmember

=

master.getAttribute(

'

groupmember

'

);

var

i

=

0

;

while

(i

<

groupmember.length){

if

(chkselall)chkselall

=

groupmember[i].checked;

if

(chknosel)chknosel

=

!

groupmember[i].checked;

i

++

;

}

if

(master.tagName.toLowerCase()

==

'

input

'

&&

master.type

==

'

checkbox

'

){

if

(chkselall) {

master.indeterminate

=

false

;

master.checked

=

true

;

}

if

(chknosel) {

master.indeterminate

=

false

;

master.checked

=

false

;

}

if

(

!

chkselall

&&!

chknosel)master.indeterminate

=

true

;

}

else

{

master.disabled

=

chknosel;

}

}

}

window.attachEvent(

'

onload

'

,CheckboxGroup);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 jQuery 实现的四级联动代码,其中一二级联动使用 select 下拉框,三级和四级使用表格和复选框实现: HTML 代码: ```html <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <table id="district"> <thead> <tr> <th></th> <th>区县</th> </tr> </thead> <tbody> </tbody> </table> <table id="street"> <thead> <tr> <th></th> <th>街道</th> </tr> </thead> <tbody> </tbody> </table> ``` jQuery 代码: ```javascript $(function () { // 加载省份数据 $.ajax({ url: 'province.json', success: function (data) { var options = '<option value="">请选择省份</option>'; $.each(data, function (index, item) { options += '<option value="' + item.code + '">' + item.name + '</option>'; }); $('#province').html(options); } }); // 省份下拉框改变事件 $('#province').change(function () { var provinceCode = $(this).val(); if (provinceCode) { // 加载城市数据 $.ajax({ url: 'city.json', data: {provinceCode: provinceCode}, success: function (data) { var options = '<option value="">请选择城市</option>'; $.each(data, function (index, item) { options += '<option value="' + item.code + '">' + item.name + '</option>'; }); $('#city').html(options); } }); // 加载区县数据 $.ajax({ url: 'district.json', data: {provinceCode: provinceCode}, success: function (data) { var rows = ''; $.each(data, function (index, item) { rows += '<tr><td><input type="checkbox" value="' + item.code + '"></td><td>' + item.name + '</td></tr>'; }); $('#district tbody').html(rows); } }); } else { $('#city').html('<option value="">请选择城市</option>'); $('#district tbody').empty(); $('#street tbody').empty(); } }); // 城市下拉框改变事件 $('#city').change(function () { var cityCode = $(this).val(); if (cityCode) { // 加载街道数据 $.ajax({ url: 'street.json', data: {cityCode: cityCode}, success: function (data) { var rows = ''; $.each(data, function (index, item) { rows += '<tr><td><input type="checkbox" value="' + item.code + '"></td><td>' + item.name + '</td></tr>'; }); $('#street tbody').html(rows); } }); } else { $('#street tbody').empty(); } }); }); ``` 说明: - 省份数据、城市数据、区县数据和街道数据均存放在 JSON 文件中,通过 jQuery 的 ajax 方法异步加载; - 一级联动使用 select 下拉框,二级联动也使用 select 下拉框,三级和四级联动使用表格和复选框实现; - 省份下拉框改变事件中,根据选择的省份加载对应的城市数据和区县数据; - 城市下拉框改变事件中,根据选择的城市加载对应的街道数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值