js动态改变input的值不触发input的change事件的解决办法

JS触发Change事件
探讨了在使用JavaScript动态改变input值时,如何手动触发change事件,包括通过jQuery的change方法和监听select元素的值变化。

input通过键盘改变值会自动触发change事件,但通过js动态改变值后,不会自动触发,需要手动触发change事件。

1.通过js赋值后手动触发/手动监听

<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事件也触发,需要手动触发change事件。

手动触发
// 按钮点击事件
$("button").on('click', function(){
    $("input").val("赋值成功");
    // 触发change事件
    $("input").change();
});
手动监听
<body>
    <input type="hidden" id="ttt" /><br/>
    <select id="eee" >
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
</body>
<script type="text/javascript">
        var ttt =  document.getElementById("ttt");
        var eee =  document.getElementById("eee");
        eee.οnchange=function (){
            ttt.value=eee.value;
            ttt.addEventListener("input",changeValue(),false);
        }
        function changeValue(){
            alert(ttt.value);
        }

### el-input 组件中 change 事件触发条件与用法 在 Element UI 的 `el-input` 组件中,`change` 事件是一个常用的事件,通常用于监听用户输入的变化。以下是关于 `change` 事件触发条件、用法及示例代码。 #### 触发条件 `change` 事件会在以下情况下被触发: - 当输入框失去焦点(blur)时,且输入发生变化时会触发 `change` 事件[^2]。 - 如果输入框的内容没有变化,则触发 `change` 事件。 #### 用法 `change` 事件可以绑定到 `el-input` 组件上,通过 `@change` 或者 `v-on:change` 来监听用户输入的变化。它通常用于需要在输入框内容改变后执行某些逻辑的场景。 #### 示例代码 以下是一个使用 `el-input` 组件并监听 `change` 事件的示例: ```vue <template> <div> <el-input v-model="inputValue" @change="handleChange"></el-input> <p>当前输入:{{ inputValue }}</p> </div> </template> <script> export default { data() { return { inputValue: '' // 绑定输入框的 }; }, methods: { handleChange(value) { console.log('输入框内容变化:', value); // 在这里可以添加处理逻辑,例如验证输入或更新状态 } } }; </script> ``` 在上述代码中: - `v-model="inputValue"` 将输入框的绑定到 `inputValue` 数据属性上。 - `@change="handleChange"` 监听了 `change` 事件,并在事件触发时调用 `handleChange` 方法[^2]。 #### 注意事项 - 如果需要实时监听输入框内容的变化,可以使用 `input` 事件是 `change` 事件。`input` 事件会在每次用户输入时立即触发[^2]。 - 在某些场景下,可能需要结合 `blur` 事件来实现更复杂的逻辑。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值