0

私はここで少し混乱しています。問題は、maxlengthがtrueで、ユーザーが特定のキーを押さなかったときに、次のテキストボックスにタブで移動したいasp.netテキストボックスがあることです。私のasp.netコードは次のようなものです:

<asp:TextBox ID="txbTransferBanknumber" Style="width: 50px;" MaxLength="4" 
Visible="true" runat="server" autocomplete="off"    onkeyup="autoTabNextTextBox(this,'txbTransferLedger')" CssClass="AutoTabFill" />

autoTabNextTextBox関数は次のようになります。

function autoTabNextTextBox(sender, nextTextBox) {

    var keyCode = (event.which) ? event.which : event.keyCode
    var mylength = $(sender).val().length;
    var maxlength = $(sender).attr('maxLength');

    if((keyCode != 37) && (keyCode != 39))
    {
        if ((keyCode != 8) && (keyCode != 16))
        {
            if (mylength == maxlength)
            {   
                $('.nextTextBox').focus();
                //nextTextBox.focus();                    
            }
        }
    }

}

パラメータnextTextBoxを.focus()に渡すにはどうすればよいですか?

4

1 に答える 1

1

ClientIdModeがStatic(出力HTML要素のIDが)であると仮定すると、 (現在使用している文字列ではなく)セレクターの一部としてtxbTransferLedgernextTextBoxパラメーターを含める必要があります。 nextTextBox

$('#' + nextTextBox).focus();

更新: StaticのClientIdModeを使用できないため、入力要素の生成されたIDを完全に制御できない場合は、代わりにクラスセレクターを使用することもできます。各入力要素に一意のクラス名を付けます(これは、使用している既存のクラスに追加できます)。例:

<asp:TextBox ID="txbTransferLedger" CssClass="AutoFill TransferLedger" />

次に、IDの代わりに必要なクラス名(TransferLedgerこの例では)を関数に渡します。autoTabNextTextBox次に、次のようにクラスセレクターを使用できます。

$('input.' + nextTextBox).focus(); // e.g. $('input.TransferLedger').focus();
于 2012-10-29T10:42:49.893 に答える