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() });