select触发change事件如何获取之前的值

select绑定change事件,触发change事件后会判断能否修改,若不能则任然显示之前的值,请大神指教

阅读 13.2k
4 个回答

之前的想法是绑定change事件的同时也绑定click事件,但是发现会先触发click,再触发change,最后再触发click。当然这样就没法达到我想要的效果,但是将click事件改为focus事件,就可以了

var prevValue = "";
$('select').on('focus',function(){
    prevValue = $(this).val();// 记录select之前选中的值
}).on('change',function(){
    if(canChange){
        // 可以更改
    }else{
       $(this).val(prevValue);// 将select值还原
    }
})
<select name="" id="Select">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

这个不是自己就带你要的效果,不需要加change。。。。

加个隐藏域记录之前的值不就行了。

定义一个变量保存当前的值,然后change事件触发,判断能否修改,如果不能修改,再把select设置成你保存的那个值。

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