下拉框select的值改变怎么监测(js修改也算)?

Object.defineProperty和Proxy都无法做到的样子,
就是无论是用户选择了下拉框,还是自己用js在另外的地方强制改变select的值(select.value = 1,这时候change是无法触发的);都能触发的办法,有没有呢。Object.observe已经废弃了所以无法测试。

阅读 5.8k
1 个回答

如果用js改变的地方少的话 改变的时候调一下函数就行了
多的话就用下面监听 但是这样的话 就不能直接select.value=1跳到option为1的位置了

function def(obj,key,value){
  Object.defineProperty(select,"value",{
      get:function (){
          return value;    
      },
      set:function (newvalue){
          func();//调用函数
          value = newvalue;
      }
  });
}
def(select,"value",select.value)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏