我想知道是否有方法來禁用所有按鍵事件(如鍵入文本),而文本框元素被選中/有焦點但仍然允許使用ctrl + v粘貼快捷方式。換句話說,我想使它成爲用戶可以在框中輸入任何文本的唯一方式,就是粘貼它(通過使用上下文菜單或ctrl + v)。防止用戶將文本輸入文本框,但允許粘貼鍵盤快捷方式
回答
下面的代碼,停用的keydown,但請按Ctrl + V的工作。
var ctrlActive = false;
$('#idtext').keydown(function(e) {
if(ctrlActive)
{
if(event.which == 86) {
return true;
}
else
{
e.preventDefault();
return false;
}
}
else
{
if(event.which == 17)
ctrlActive = true;
else
{
e.preventDefault();
return false;
}
}
});
$('#idtext').keyup(function(e) {
if(event.which == 17) {
ctrlActive = false;
}
});
謝謝!我嘗試了類似的東西,但認爲它不工作,因爲我的代碼中有一個錯誤,我沒有發現它,並認爲我錯了! – SenTaiyou 2014-09-04 10:32:22
別擔心,我讀了你的更新,但我已經做了代碼。你的代碼工作正常嗎? – SeraphimFoA 2014-09-04 10:37:21
是的,它工作正常..謝謝! – SenTaiyou 2014-09-04 10:53:27
嘗試這個簡單的解決方案:
<input type="text" id="txtbox" />
$(document).ready(function() {
var ctrlKey = 17
var vKey = 86
$("#txtbox").keydown(function (e) {
if (!(e.ctrlKey && e.which == vkey)) {
return false;
}
});
});
整潔的解決方案。難道你不能在keydown事件arg – SeraphimFoA 2014-09-04 11:30:15
中檢查那樣的值嗎?是的,它可以被檢查。你想檢查整個文檔的'keydown'嗎? – 2014-09-04 11:31:53
顯然沒有必要。我試過你的代碼,即使你在文本框外按下ctrl,它也能正常工作,選擇保持按下ctrl的文本框,然後按'v'。做得好! – SeraphimFoA 2014-09-04 12:53:41
- 1. 如何防止鍵盤顯示,但允許粘貼UITextView
- 2. 允許編號並粘貼在輸入文本框中
- 3. 只允許使用menuitem快捷方式的文本框
- 4. 鍵盤快捷方式,將粘貼bash命令
- 5. 防止鍵盤覆蓋文本框
- 6. 允許Chrome擴展鍵盤快捷鍵
- 7. flex:如何防止在flex3文本輸入中粘貼(ctrl + V)?
- 8. 防止複製+粘貼文本區爲()
- 9. 如何防止輸入html文本輸入中的分號,但允許冒號?
- 10. 允許用戶只輸入文本?
- 11. 如何在C#中的文本框中添加鍵盤快捷鍵(輸入)?
- 12. 如何在Mac X11 xterm中啓用粘貼鍵盤快捷鍵?
- 13. Pycharm鍵盤快捷方式框中斷
- 14. 如何防止在將文本粘貼到輸入字段時出現空格?
- 15. 不允許複製和粘貼文本框中的小數和文本值
- 16. C#文本框限制輸入字符和快捷鍵
- 17. Keydown鍵盤快捷方式
- 18. 允許對象文本,防止串
- 19. 二維文本框的鍵盤輸入
- 20. 如何防止在文本框上粘貼Alpha版窗口
- 21. 如何防止在文本框中粘貼非數值?
- 22. IntelliJ鍵盤快捷鍵將文本轉換爲XML'標記對'
- 23. 在文本框中輸入文本後禁用鍵盤
- 24. 如何不允許用戶輸入數字的文本框
- 25. 允許用戶在文本框中輸入轉義字符
- 26. 將多個文本行粘貼到多個html輸入框中
- 27. 將tcpstream輸入粘貼到文本框中
- 28. XNA - 鍵盤文本輸入
- 29. 如何防止粘貼到輸入的腳本注入
- 30. 防止緩存,但允許腳本
的onkeydown = 「返回false;」 – 2014-09-04 10:20:25
對不起,過早地問了這個問題......我檢查了返回錯誤;對於keydown事件,不管是否按下ctrl鍵,但卻有拼寫錯誤!對不起,浪費時間! – SenTaiyou 2014-09-04 10:29:14