2017-07-26 205 views
1

我想在輸入按鍵被禁用的元素時產生一個函數。當鼠標懸停時元素按鍵

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    alert("enter pressed"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" disabled/>

我想懸停的方法,但我不能succesfull。

這是的jsfiddle鏈接:https://jsfiddle.net/vL9emkzL/

編輯屈居鏈接:https://jsfiddle.net/vL9emkzL/1

+3

'disabled'元素不能引發事件,所以你想做什麼是不可能的。作爲一種解決方法,您可以使用'readonly'來代替,但這可能會產生連鎖效應,具體取決於您使用輸入的方式 –

+0

@RoryMcCrossan它不適用於只讀,因爲元素必須專注於觸發按鍵事件。 - 我的壞,不好的操縱。它工作正常 – Alexis

+0

先生,當我只讀我可以改變輸入看看這個代碼塊https://jsfiddle.net/vL9emkzL/1/ –

回答

1

使用只讀,而不是禁止。禁用的元素不能發射事件。

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    alert("enter pressed"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" readonly/>

+0

只讀在此代碼塊不起作用https://jsfiddle.net/vL9emkzL/1 –

+0

@ZibianDomichi其工作。當我按下輸入鍵警報即將到來。 –

+0

但它不是隻讀的,你可以改變輸入值。我不想改變輸入。 –

1

因此,這裏是我們能做些什麼:

  1. 正如你提到的,用戶將在輸入欄中輸入一個值,然後按進入
  2. 所以當用戶按下輸入時,禁用此字段並打開彈出窗口。

因此,而不是從一開始就使它只讀或禁用,我們只能當他按下進入使其禁用。

$(".example").on("keypress", function(e) { 
 
    if (e.keyCode == 13) { 
 
    $(this).prop('disabled', true); 
 
    console.log("enter pressed and field is disabled."); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="example" />

相關問題