Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
以下是开发中遇到过的问题,我们经常会遇到用下拉框选择对应的值的场景,有时候又有多个下拉框联动选择,这就需要监听前一个选择的赋值来做后续动作。又例如,用户打开门户网,在页面加载完成以后,默认是自己现在所处的省份,需要触发一个onChange事件,在js中用document.getElementById("province").value="广东";直接给select或text赋值是不行的
一、题目描述:
select 或text的onchange事件需要手动(通过键盘输入)改变select或text的值才能触发,如果在js中给select或text赋值,则无法触发onchang事件
二、思路分析:原理都是监听元素的change事件,来达到赋值的目的,以下是JavaScript和jq的处理办法
方法一: 若要能在js赋值的时候也可以触发则要用到addEventListener;
方法二: 若要能在jq赋值的时候也可以触发则用trigger;
demo1:
{document.getElementByIdx_x(‘msg’).innerHTML=’输入的文字长度为:’+document.getElementByIdx_x(‘txt’).value.length;\
}
document.getElementByIdx_x(‘txt’).addEventListener(“change”,handle,false);
demo2:
<option value="RadarMap">气象雷达图</option>\
<option value="CloudPicture">卫星云图</option>\
<option value="SeaPlatform">能见度图</option>\
<option value="rainVolume">降雨量图</option>\
<option value="rainVolume">降雨量图</option>\
</select>
$("#weather-category").val(linkageConfig.InitWeatherType).trigger('change', 'typeChange');//其中的typeChange 为trigger事件传的参数,用于自定义事件非常实用
以上两种方法测试过有效,在狐火浏览器、谷歌浏览器、IE10浏览器上测试都没有问题