【问题标题】:How can I avoid onChange event call for a textbox when its focused and tab is clicked?当单击焦点和选项卡时,如何避免文本框的 onChange 事件调用?
【发布时间】:2016-01-20 00:19:42
【问题描述】:

我在 html 页面上有几个文本框和一个编辑按钮 - 比如 T1、T2、T3、T4。 我有 T1 的 onchange 事件。 onchange 事件使 T2 只读=真 T3,T4 可编辑(设置只读属性 = false)

现在,我有一个按钮——“编辑”——它的作用是 T2 只读=假 T3 和 T4 不可编辑(设置只读属性 = true) 焦点转到 T1。

接下来,我现在在 T1。我单击选项卡(即使没有更改 T1 的值) - 问题出现了 - T1 的 onChange 事件被触发!它使 T2 只读=真 T3,T4 可编辑(设置只读属性 = false) 这是不可取的。

当 T1 处于焦点时,如何避免 T1 的 onChange 在从 T1 单击选项卡时触发?非常感谢您对此的任何帮助。提前致谢!

【问题讨论】:

  • 提供some code .. 你做了什么.. 否则别人怎么能帮助你?

标签: javascript php jquery html


【解决方案1】:

我不太确定您在问什么,但 onchange 可能不是要使用的正确功能。如果这不能解决问题,请制作小提琴或发布您的代码,但请尝试用 onfocus 替换您的 onchange 触发器。

http://www.w3schools.com/jsref/event_onfocus.asp

【讨论】:

    【解决方案2】:

    一旦您离开文本区域并尝试做其他事情,就没有任何方法可以阻止该事件,因为一旦您模糊了元素,就会发生变化。浏览器将在触发下一个事件处理程序之前检测到模糊

    您可能需要在 onchange 事件处理程序中使用一个简短的setTimeout,以便在执行您在onchange 中执行的任何操作之前评估您的T1, T2... 变量

    没有提供有问题的代码,很难提供任何进一步的帮助

    类似:

    element.onchange = function(){// or $('#mytestarea').on('change....
       setTimeout(function(){
         // should have had enough time for tab values to have changed
         // do whatever you normally do here
       }, 50);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多