Ответ 1
Попробуйте следующее:
$('.tg').bind('keypress', function(event) {
if(event.which === 13) {
$(this).next().focus();
}
});
или версия цикла: http://jsbin.com/ofexat/2
У меня есть текстовые поля на .net-странице и вы хотите выполнить следующее с помощью jQuery: если пользователь нажимает на возврат, программа должна вести себя "как если бы" он использовал ключ табуляции, таким образом, выбрав следующий элемент. Я попробовал следующий код (и еще несколько):
<script type="text/javascript">
jQuery(document).ready(function () {
$('.tb').keypress(function (e) {
if (e.keyCode == 13)
{
$(this).trigger("keydown", [9]);
alert("return pressed");
}
});
});
<asp:TextBox ID="TextBox1" runat="server" CssClass="tb"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" CssClass="tb"></asp:TextBox>
но он просто не работает! Что-то не хватает, допустив ошибку?
Здесь некоторые ссылки, которые я использовал
Попробуйте следующее:
$('.tg').bind('keypress', function(event) {
if(event.which === 13) {
$(this).next().focus();
}
});
или версия цикла: http://jsbin.com/ofexat/2
Я создал простой плагин jQuery, который решает эту проблему. Он использует селектор ": tabbable" jQuery UI, чтобы найти следующий элемент "tabbable" и выбирает его.
Пример использования:
// Simulate tab key when enter is pressed
$('.tb').bind('keypress', function(event){
if(event.which === 13){
if(event.shiftKey){
$.tabPrev();
}
else{
$.tabNext();
}
return false;
}
});
Из нескольких ответов я объединил идеальное решение для меня, где вводят действие как вкладку на входах и выбирает и фокусируется на следующем входе, выборе или текстовом поле, а также позволяет вводить внутреннюю текстовую область.
$("input,select").bind("keydown", function (e) {
var keyCode = e.keyCode || e.which;
if(keyCode === 13) {
e.preventDefault();
$('input, select, textarea')
[$('input,select,textarea').index(this)+1].focus();
}
});
Попробуйте это
$(this).trigger({
type: 'keypress',
which: 9
});