检测select的值发生改变(通过js进行的改变)的事件

通过js动态修改select的选中值,然后需要检测到这个值变化的时候去出发另外一个事件或者是检测到这个发生变化时做一些其他的事情。change只能是鼠标选择发生变化

阅读 10.5k
4 个回答

$('select').val('2').change()

如果修改的是值的话,可以使用对象,用definePropertyset函数去监测值的修改
给你一个demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <select>
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
        <option value='4'>4</option>
    </select>
</body>
<script>
    var select = {
        val: '1'
    }
    Object.defineProperty(select, 'val', {
        set: function(value) {
            document.querySelector('select').value = value
            console.log('select的值已经修改,下面要做一些事情')
        }
    })
    
    select.val = '3'
</script>
</html>

js修改的话应该是没有事件的。

不过你可以试试vue框架的数据绑定功能,

谢邀。既然你要用js进行修改,那你可以封装一个修改方法,然后在每次修改后手动触发一下change事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题