我想知道是否有方法來禁用所有按鍵事件(如鍵入文本),而文本框元素被選中/有焦點但仍然允許使用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. 防止鍵盤輸入,但允許在文本框上自動掃描輸入
- 2. 如何防止鍵盤顯示,但允許粘貼UITextView
- 3. 允許編號並粘貼在輸入文本框中
- 4. 只允許使用menuitem快捷方式的文本框
- 5. 鍵盤快捷方式,將粘貼bash命令
- 6. 在鍵盤快捷方式中插入預定義文本
- 7. 快捷方式粘貼多行 - 崇高的文本2
- 8. AutoHotkey的:粘貼/寫文本的簡單配合鍵盤快捷鍵
- 9. 允許Chrome擴展鍵盤快捷鍵
- 10. 防止鍵盤覆蓋文本框
- 11. 允許將數據粘貼到WPF文本框中
- 12. 允許空文本框,但不允許輸入無效
- 13. flex:如何防止在flex3文本輸入中粘貼(ctrl + V)?
- 14. 禁用鼠標將文本放入JTextField並允許粘貼按鍵事件
- 15. 防止複製+粘貼文本區爲()
- 16. 如何防止輸入html文本輸入中的分號,但允許冒號?
- 17. 允許用戶只輸入文本?
- 18. 如何在C#中的文本框中添加鍵盤快捷鍵(輸入)?
- 19. 將公式粘貼文本
- 20. AutoHotKey文本快捷方式
- 21. VS代碼鍵入文本與鍵盤快捷鍵?
- 22. C#文本框禁用快捷鍵
- 23. 輸入框,允許富文本功能
- 24. 如何在Mac X11 xterm中啓用粘貼鍵盤快捷鍵?
- 25. 粘貼鍵盤快捷鍵後調用JS函數?
- 26. Pycharm鍵盤快捷方式框中斷
- 27. 蒙面文本框不允許粘貼蒙面
- 28. 如何防止在將文本粘貼到輸入字段時出現空格?
- 29. 不允許複製和粘貼文本框中的小數和文本值
- 30. Keydown鍵盤快捷方式
的onkeydown = 「返回false;」 – 2014-09-04 10:20:25
對不起,過早地問了這個問題......我檢查了返回錯誤;對於keydown事件,不管是否按下ctrl鍵,但卻有拼寫錯誤!對不起,浪費時間! – SenTaiyou 2014-09-04 10:29:14