JS与Jquery之动态添加下拉框select并级联改变事件

JS与Jquery之动态添加下拉框select并级联改变事件,第1张

1.可以动态添加多个下拉框,可减少下拉框

2.选中第一个下拉框的任意一个值,同时第三个下拉框的值跟着改变,显示对应的数据。

ps:what?光动态添加就足以。。。。赋值还不能直接赋,而是添加下拉时就赋值。。。。。经过百般折磨,头发掉了n根,最终通过巧妙的思路解决了,在此记录下。若对你有所帮助,点赞加关注吧!后续及时更新。

第一个下拉选项显示

选择下拉项,同时加载数据到第三个下拉框

注:在这里直接去掉了第二行的标签

为了获取改变数据的行,试了很久,动态生成的下拉框无法获取到索引,所以才想到了使用id,并且给id后加一个数字

1、确定当前需要添加元素的text以及对应的value

2、获取当前下拉框中所有的option元素数组optionArr,可以通过$('#citySelect option')获取元素集合。

3、遍历optionArr,判断需要添加的text或者value是否和optionArr相同,相同则不添加,没有重复则添加。

示例:

<select id='citySelect'>

<option value='beijing'>北京</option>

<option value='shanghai'>上海</option>

</select>

方法:

<script>

function addCity(value, text){

var optionArr = $('#citySelect option')

for(var i=0i<optionArr.lengthi++){

if(optionArr[i].text == text || optionArr[i].value == value){

return false

}

}

var addOption = "<option value='" + value + "'>" + text + "</option>"

$('#citySelect').append(addOption)

}

</script>

触发获取动态数据的方法

获取动态数据list

清除select下面所有的选项

把获取的数据append到select下面

$('#id).change(function(){

var val = this.value

document.getElementById("selectId").options.length = 0

if(val != null &&val != ''){

$.post(url, {"temp": val}, function(data){

if(data != null &&data.length >0){

for(var i=0i<data.lengthi++){

var o = data[i]

$("#selectId").append("<option value='"+o[0]+"'>"+o[1]+"</option>")

}

}

$("#selectId").selectmenu('refresh', true)//jqm 是动态加载的css 所以新增元素后 需要手动加载样式

})

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7965359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存