jQuery检测隐藏域hidden 触发onchange事件失败

新手上路,请多包涵

<input type="hidden" name="blk" onchange="test();" value="" />
当使用js脚本是blk中的value值发生改变时为啥没触发onchange事件儿,怎么样才能执行test()方法呢?

阅读 4.7k
3 个回答

onchange事件只能在输入框失去焦点时内容有变化时触发,我猜你是想监听输入事件,请用onkeyup,这样每次输入字符都会触发事件。

input 事件~ 或 trigger('change')

onchange只要在获得焦点,然后再失去焦点后才会触发。直接dom操纵赋值可以扩展jquery,添加一个_val方法,替代jq自己的val

        $.fn.extend({_val:function(newVal){
            var originalVal = $(this).val();
            if(newVal!==originalVal) {
                $(this).val(newVal);
                $(this).trigger("change");
            }
        }})

给input赋值时这样使用 $('input[name=blk]')._val(12345)即可.

看你的场景,不一定要像上面一样扩展jQuery。如果仅仅有一两处是使用,你也可在使用val赋值完成后,在直接调用trigger("change")触发事件即可,丑陋一点而已。

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