下拉列表是可输入的,我想要当输入的时候触发onchange事件,当选择的时候触发onpropertychange事件,请问该功能如何实现?
3条回答 默认 最新
- eplang 2010-06-08 10:55关注
输入时不触发onpropertychange是不可能的.
你修改了文本框的值就是修改了文本框的value属性, value属性一变动就会触发onpropertychange事件, 这个是避免不了的.只能从事件优先级中规避这问题.
往文本框里输入东西的话(假设只考虑输入键盘输入), 敲一个字符, 肯定会触发和键盘相关的三个事件, keydown, keyup, keypress.
keydown的时候, 字符还没出来, keyup和keypress的时候, 字符就出来了, 字符一出来就会触发onpropertychange事件.所以我们可以创建一个flag, 默认为false, 在keydown时, 为flag附值为true, 在onpropertychange时, 判断一下flag是否为true, 如果为true, 就代表是敲入字符所触发的, 那我们就将flag赋值为false, 其他啥都不做, 直接返回.
这样应该可以一半达到你所要实现的效果了.
至于别人不用键盘输入, 而是右键粘贴这个... 你就自己琢磨一下吧. 看看onchange和onpropertychange哪个优先级高, 或者还有什么事件可以利用的.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?