2014-05-01 34 views
0

問題:我無法檢查Shift鍵是否在表單提交中被保留。這將返回undefined而不是truefalse
爲什麼會發生這種情況?問題的不工作:javascript上的<form onsubmit =「alert(event.shiftKey)」>>

例子:http://jsfiddle.net/DRSDavidSoft/fFYKs/

我想要什麼:我想知道是否當一個表單提交正在舉行的Shift鍵。
感謝您的幫助。

+0

只是好奇,但你想,爲什麼具體檢測該密鑰? –

+0

Ctrl鍵和Alt鍵也會有幫助!我只是想改變一個按鈕的功能。如果你願意,我可以給你一個鏈接到我的項目。 –

+1

這很簡單,onsubmit事件沒有關鍵的概念,因爲應該沒有理由檢查提交的關鍵字。將其更改爲onclick,它將起作用。 – adeneo

回答

1

這是因爲submit事件對密鑰一無所知。 我建議用按鈕輸入替換你的提交輸入。那裏檢查將工作正常。 下面是示例: http://jsfiddle.net/fFYKs/2/

<input type="button" value="Click here to submit" onclick='isPressed(event);'/> 

和JS:

function isPressed(e){ 
    if (e.shiftKey) { 
     window.myForm.submit(); 
    } 
} 

也爲跨平臺的詳細信息,建議訪問此鏈接:http://goo.gl/wKdJMO

+0

謝謝,但我已經知道這一點。我的表單包含一個文本輸入,表單應通過回車提交。我只是想改變當按下shift鍵時該窗體的功能。我認爲在這裏堅持收音機箱更好。不管怎麼說,還是要謝謝你! ;) –

+1

我還有一個想法是綁定window.keydown事件,在JS變量中設置按下shift的位置。和windows.keyup - 當這個變量被釋放時,把這個變量設置爲false。並在你的支票使用提到的變量。這應該也很好,但會增加開銷,比如在每個按鍵上的額外檢查。 – sleepwalker

相關問題