js实现元素的多选,或单选功能

JavaScript017

js实现元素的多选,或单选功能,第1张

效果预览 

html中-css中 - 以ul 和 li标签双层结构为例 

js中

1,定义一个init方法, 完成处理数据 并把最后选中的数据返回

1.通过getArr方法,  挂载了li元素的点击事件liClick方法, 并返回处理好的数据arr,checkbox的话arr里面是多条选中的,radio则为单条

 通过array的特性来达到return返回的数据同步

2.根据传递过来的type类型判断是单选框还是复选框, 来调用不同的处理函数checkboxFun或radioFun

3.checkboxFun完成了复选框的一些数据处理操作  , , radioFun 完成了单选框的一些数据处理操作

2, 获取子元素集合, 并调用init函数, 

init函数调用并会返回一个newArr,   这个newArr就是最新的数据集合

这样就可以实现一个单选多选的功能了

这个功能很简单,像楼上说的,如果你有编程基础。

<form>

<input type="button" value="哈哈"><input type="button" value="呵呵"><input type="button" value="嘻嘻">

... ... ...

<a href="javascript:void(0)">提交</a>

</form>

$(function(){

$("input").click(function(){$(this).attr("checked","checked").css({"做你要的样式"})})

$("a").click(function(){

//写你的判断

$("form").submit()

})

})

<HTML>

 <HEAD>

<script type="text/javascript" src="./jquery-1.11.1.js"></script>

<script type="text/javascript">

$(function(){

 var checkbox = $("#test :checkbox")

 $("#test :checkbox").click(function(){

var opchek = $(this)

var level = parseInt(opchek.attr("level"))

$.each(checkbox, function(){

var _this = $(this)

if(parseInt(_this.attr("level"))< level){

if(opchek.prop("checked")){

_this.prop("checked",true)//这个方法好像是1.8+的jquery才有的

_this.attr("disabled",true)

}else{

var prevLevel = level - 1

$("#test :checkbox[level='"+prevLevel+"']").attr("disabled",false)

}

}

})

})

})

</script>

 </HEAD>

 <BODY>

<div id="test">

<input type="checkbox" id="a" level="1">查看</input>

<input type="checkbox" id="b" level="2">添加</input>

<input type="checkbox" id="c" level="3">修改</input>

<input type="checkbox" id="d" level="4">完全控制</input>

</div>

 </BODY>

</HTML>