繁体   English   中英

在IE9中输入输入字段中的焦点最近按钮

[英]Enter in input field focus nearest button in IE9

我在下面的代码中有一个输入字段和一个按钮。

我已经编写了一些JavaScript代码来捕获键入内容,并在其Enter键显示警报。

在Firefox中可以正常工作,但是在IE9中,在输入字段中输入回车会导致按钮变为焦点,并且不会触发javascript中的keyUp触发器。

任何人都有解决方案的建议吗?

jsfiddle: http : //jsfiddle.net/c46khq2x/1/

HTML:

<input type="text" class="js-field-click"/>

<button class="js-button-click">Button</button>

javascript(JQuery):

 $( document ).ready(function() {


      $(".js-field-click" ).keyup(function(e) {
         var val = $(this).val();
         var code = e.which;

         if(code==13){
            alert("field enter");
         }
      });

     $(".js-button-click").click( function() {
            alert("button click");
     });
 });

嗨,代码有问题。 有几件事需要纠正。 您可以在下面尝试检查...

$( document ).ready(function() {


      $(".js-field-click").on('keydown', function(e) {
         var val = $(this).val();
         var code = e.which;

         if(event.which == 13){
            alert("field enter");return false;
         }
      });

     $(".js-button-click").click( function() {
            alert("button click");
     });
 });

一些注意事项:-
1.更喜欢将选择器更改为窗口
2.使用.on()函数
3.添加return false; 阻止事件冒泡。

我找到了一个解决方案,似乎IE9选择了表单中的下一个按钮,因此通过将文本字段包装在表单中并将按钮保留在表单之外,则IE9将不会选择该按钮,并且脚本将起作用

<form>
    <input type="text" class="js-field-click"/>
</form>    

<button class="js-button-click">Button</button>

我模拟Internet Explorer 9,并将您的代码操纵为:

 $( document ).ready(function() {


  $(".inp" ).keyup(function(e) {alert('keyup triggered');
     var val = $(this).val();
     var code = e.which;

     if(code==13){
        alert("field enter");
     }
  });

 $(".but").click( function() {
        alert("button click");
 });
});

和HTML:

 <input type="text" class="inp"/>

 <button class="but">Button</button>

当我输入字母时,它会提示“按键触发”。 但是当我单击Enter键时。 它将点击事件发送到按钮(但是),并警告“按钮点击”。 但它不会将keyup事件发送到输入

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM