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

  

原文地址:https://www.cnblogs.com/xhrr/p/11277521.html