【问题标题】:how to pass javascript parameter from asp.net to .focus如何将 javascript 参数从 asp.net 传递到 .focus
【发布时间】:2012-10-18 16:01:47
【问题描述】:

我在这里有点困惑。问题是我有一个 asp.net 文本框,当 maxlength 为 true 并且用户没有按下某些键时,我想将其切换到下一个文本框。我的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() ?

【问题讨论】:

  • 不确定“将参数 nextTextBox 传递给 .focus()”是什么意思?
  • 我只是不明白如何让我的 javascript 专注于下一个文本框 (txbTransferLedger),而我的参数名称是 NextTextBox。
  • 好的,我明白了。那么请查看卢克的回答。

标签: javascript asp.net parameter-passing


【解决方案1】:

假设你有一个 ClientIdMode 的静态(意味着输出 HTML 元素的 id 是 txbTransferLedger)那么你只需要包含 nextTextBox 参数 作为选择器的一部分(如与您当前使用的 字符串 nextTextBox 相对):

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

更新:如果您不能使用静态的 ClientIdMode,因此无法完全控制输入元素的生成 ID,那么另一种选择是使用类选择器。给每个输入元素一个唯一的类名(这可以是您正在使用的任何现有类的补充)例如:

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

然后将您想要的类名(在本例中为TransferLedger)传递给autoTabNextTextBox 函数而不是ID。然后,您可以按如下方式使用类选择器:

$('input.' + nextTextBox).focus(); // e.g. $('input.TransferLedger').focus();

【讨论】:

  • 我不能将 ClientIDMode 设置为静态。那我还有什么其他选择?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多