在IE9

2015-04-08 46 views
1

輸入輸入場集中最接近按鈕我有一個輸入字段,並在下面的代碼的按鈕。在IE9

我有寫一些JavaScript代碼來捕捉KEYUP並顯示警告如果回車鍵。

在Firefox這項工作很好,但在IE9將a輸入點擊輸入字段導致該按鈕變爲突出重點,在keyUp觸發JavaScript中不會被解僱。

任何人有解決辦法的建議?

的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"); 
    }); 
}); 

回答

1

我找到一個解決方案,似乎IE9在表單中選擇下一個按鈕,這樣在形式包裝文本字段,離開按鈕的形式之外,那麼IE9不會選擇按鈕和腳本將工作

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

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

您好與代碼問題。有幾件事你需要糾正。你可以試試下面檢查一下......

$(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.使用。對()函數
3.添加返回false;阻止事件冒泡。

+0

它似乎並沒有在IE9工作:( –

0

我效仿的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> 
當我鍵入它提醒了一封信

「KEYUP觸發」。但是當我點擊Enter鍵時。它發送點擊事件按鈕(但),並提醒「按鈕點擊」。但它不keyup事件發送到輸入

+0

感謝您試用,是那問題,IE9焦點的按鈕出於某種原因,當你按下Enter鍵 –

+0

@JohanNordli如果您將事件從'keyup'更改爲'keydown',它將發送事件給兩個元素 –