[英]Ctrl+Enter jQuery in TEXTAREA
當光標在TEXTAREA中並按下Ctrl + Enter時,如何觸發某些內容? 使用jQuery 。 謝謝
您可以使用event.ctrlKey
標志來查看是否按下了Ctrl鍵,如下所示:
$('#textareaId').keydown(function (e) {
if (e.ctrlKey && e.keyCode == 13) {
// Ctrl-Enter pressed
}
});
在這里查看上面的代碼段。
通用解決方案
也支持OS X,也就是說, control + enter和command + enter都應該有效。
if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) {
// do something
}
我發現其他人的答案不完整或不兼容跨瀏覽器。
此代碼適用於Google Chrome。
$(function ()
{
$(document).on("keydown", "#textareaId", function(e)
{
if ((e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
{
alert('ctrl+enter');
}
});
});
這可以擴展為一個簡單但靈活的JQuery插件,如:
$.fn.enterKey = function (fnc, mod) {
return this.each(function () {
$(this).keypress(function (ev) {
var keycode = (ev.keyCode ? ev.keyCode : ev.which);
if ((keycode == '13' || keycode == '10') && (!mod || ev[mod + 'Key'])) {
fnc.call(this, ev);
}
})
})
}
從而
$('textarea').enterKey(function() {$(this).closest('form').submit(); }, 'ctrl')
當用戶按下ctrl-enter並重點放在該表單的textarea上時,應該提交一個表單。
首先你必須在按下Ctrl時設置一個標志,執行onkeydown。 然后你必須檢查輸入的keydown。 當您看到Ctrl的鍵盤時取消設置標志。
$('my_text_area').focus(function{ set_focus_flag });
//ctrl on key down set flag
//enter on key down = check focus flag, check ctrl flag
也許游戲有點晚了,但這就是我用的東西。 它還將強制提交作為光標當前目標的表單。
$(document.body).keypress(function (e) {
var $el = $(e.target);
if (e.ctrlKey && e.keyCode == 10) {
$el.parents('form').submit();
} else if (e.ctrlKey && e.keyCode == 13) {
$el.parents('form').submit();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.