私は.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プラグイン を作成しました。 jQuery UIの「:tabbable」セレクターを使用して、次の「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
});