1

あるテキストボックスに書き込むと、別のテキストボックスを埋めるJavascriptがあります。ただし、フォーカスが3番目のテキストボックスにとどまる必要があります。

実際、私のコードは次のとおりです。

<script type="text/javascript" language="javascript">
        function SelectValue(source, eventArgs) {
            document.getElementById('<%= txtCodeProduct.ClientID %>').value = eventArgs.get_value();
            document.getElementById('<%= txtQuantity.ClientID %>').focus();
            }
</script>

しかし、フォーカスが機能しません...コードにアラートを入れると、フォーカスは機能します:

<script type="text/javascript" language="javascript">
        function SelectValue(source, eventArgs) {
            document.getElementById('<%= txtCodeProduct.ClientID %>').value = eventArgs.get_value();
            document.getElementById('<%= txtQuantity.ClientID %>').focus();
            alert("test");
            }

アラートを使用せずにこれを解決するにはどうすればよいですか?私のテキストボックスは、更新パネルを使用する形式になっています。

ありがとう。

4

2 に答える 2

1

試す:

 function SelectValue(source, eventArgs) {
    document.getElementById('<%= txtCodeProduct.ClientID %>').value = eventArgs.get_value();
    setTimeout( function(){
            document.getElementById('<%= txtQuantity.ClientID %>').focus();
        }, 0);
}
于 2012-12-18T12:48:05.377 に答える
1

どのバージョンの Asp.Net を使用していますか? それ以外の場合は、ClientIDMode http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspxを使用できます

<asp:TextBox ID="txtCodeProduct" runat="server" ClientIDMode="static" />
<asp:TextBox ID="txtQuantity"    runat="server" ClientIDMode="static" />

jQuery の使用もお勧めします。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" ></script>
<script type="text/javascript">
    function SelectValue(source, eventArgs) {
        $("#txtCodeProduct").val(eventArgs.get_value());
        $("#txtQuantity").focus();
    }

http://api.jquery.com/focus/

于 2012-12-18T13:00:56.363 に答える