Javascript:如何在没有无限循环的情况下延迟或重新触发事件?

时间:2017-10-02 08:18:50

标签: javascript jquery javascript-events

我有两个文本框:INNnumberNyilvINNnumber是一个自动填充字段(基于Sharepoint服务),因此如果用户开始输入数字,可能的选项会显示在下拉菜单中,用户可以为他/她选择正确的号码。 Nyilv字段是基于INNnumber(INNnumber' s值+" .A。" +" BBB")的脚本计算字段。当Nyilv字段失去焦点时会计算INNnumber字段,但我有一点问题。

如果用户开始输入,例如输入数字" 6"并且所有数字都显示在下拉菜单中,以数字" 6"开头。所以用户停止输入并选择例如" 611"那么Nyilv字段中的结果将是" 6.A.BBB" " 611.A.BBB"。所以看起来当用户点击下拉菜单时,该字段会失去焦点,这太早了。以下是文本框更改自动填充的代码:

  

JavaScript代码:

$(function() {
  $("input[id='INNnumber_ffb3c6db-3d8d-4aa4-bb93-89a8353a2fea_$NumberField']").blur(function() {
    $("input[id='Nyilv_x00e1_ntart_x00e1_si_x0020_0b9d314c-2f8a-4ab9-9046-95af91dc0123_$TextField']").val(document.getElementById("INNnumber_ffb3c6db-3d8d-4aa4-bb93-89a8353a2fea_$NumberField").value+'.A.'+'BBB');
  });
});

所以我需要的是:

  1. 用户点击该号码。

  2. INNnumber失去焦点Nyilv被刷新。 (太早了)

  3. INNnumber获取用户选择的数字。 (太晚了)

  4. 我需要以某种方式触发事件来关注并失去对INNnumber字段的关注,以便再次激活.blur事件而不会创建无限循环。

  5. 我不确定我的想法是解决问题的最佳方法,所以非常感谢您的任何建议!

0 个答案:

没有答案