如何發送特定keyCode的觸發按鍵例如:以編程方式使用JQuery的TextBox上的「9」事件?如何使用jQuery發送按鍵觸發器
這是我打算做的; 以編程方式將值輸入到TextBox,然後以編程方式觸發TextBox上的Tabkey以退出該字段。
我的代碼
$("#tags1").val("comp") // Works well
$("#tags1").trigger("keypress",[9]); // Fails!!
迦特
如何發送特定keyCode的觸發按鍵例如:以編程方式使用JQuery的TextBox上的「9」事件?如何使用jQuery發送按鍵觸發器
這是我打算做的; 以編程方式將值輸入到TextBox,然後以編程方式觸發TextBox上的Tabkey以退出該字段。
我的代碼
$("#tags1").val("comp") // Works well
$("#tags1").trigger("keypress",[9]); // Fails!!
迦特
jQuery的文件指出,它只會通過規範化的事件屬性=的jQuery.Event對象的屬性,這似乎不包括事件 - 具體數據。
我試過了,即使重複使用瀏覽器按鍵創建的事件對象,也無法將文本插入到文本框中,因此似乎不可能。
爲什麼你不能只改變文本框的值,並調用blur()來退出它? (或中心()你接下來要進入一個?)
你問不完全是,但使用的按鍵,這可能完成你想要的:
$("#tags1").blur();
甚至
$("#tags1").next().focus();
嘗試:
$("#tags1").val("comp").trigger("keypress",[9]);
或
$("#tags1").val("comp").trigger("keypress", [{
preventDefault:function(){},
keyCode:9
}]);
試試這個:
$('textarea:input').live('keypress', function(e) {
if (e.keyCode == 9) {
e.preventDefault();
// Press TAB to append a string (keeps the original TEXTAREA text).
$(this).append("TAB TAB TAB AFTER TEXTAREA TEXT");
// Press TAB to append a string (keeps the original TEXTAREA text).
$(this).focus().prepend("TAB TAB TAB BEFORE TEXTAREA TEXT");
// Press TAB to replace a all text inside TEXTAREA.
$(this).val("INSERT INTO TEXTAREA/REPLACE EXISTING TEXT");
}
});
如果您要添加文本內 textarea的(通過活動光標 - 像CTRL + V),您可能需要使用"Tabby"(JS source code)(jQuery插件 - 254代碼行..!)。
您也可以在YUI editor中找到靈感,這將允許您在編輯器中添加TAB。
如果你想添加一個值到input/textarea然後觸發按鍵「enter」事件。
觸發像這樣
$('input').val(input_value).blur();
我創建了一個simple jQuery plugin它確實解決了這個問題。它使用jQuery UI的':tabbable'選擇器來查找下一個'tabbable'元素並選擇它。
實例:
// Simulate tab key
$.tabNext();