input文本框的oninput和onchange失效
1. 当input中value值被js修改后,此时input的oninput和onchange失效
解决:
<input type="text" /> <button>赋值</button> <script src="js/jquery.min.js"></script> <script> $(function(){ // 按钮点击事件 $("button").on('click', function(){ $("input").val("赋值成功"); }); // input值改变事件 $("input").on('change', function(){ $("button").after("<p>change事件触发</p>") }); }); </script>
这里面的input值改变事件是没有触发的,想要让change事件也触发只需要加简单的一行代码就行了
// 按钮点击事件
$("button").on('click', function(){
$("input").val("赋值成功");
// 触发change事件
$("input").change();
});
2. 在使用kuCity插件实现仅有城市的选择时,发现给input注册change等事件无效,经上述启发修改了一下一个地方。当用户选择好城市(城市名在dd中)后执行change事件,(如果$('input').change()放在input框点击事件中,则在获取城市钱便触发了,为了获得城市信息所以在用户选择城市之后)
//kuCity.js插件
//城市选择 citySelect: function() { var self = this; $('.kucity_item dd').on('click', 'span', function(e) { self.target.val(($(e.target).text())); self.container.hide(); // ********************************************************** $("input").change(); }) },
//自己的js文件
$(".search").on('change', function(){ console.log($('.search').val()) var cityName = $('.search').val() });