2012-12-18 39 views
1

我有一个JavaScript,当我在一个文本框中写入时,它填充另一个文本框。但我需要将焦点留在第三个文本框中。C#WebForm - 用Javascript设置文本框的焦点

其实,我的代码是:

<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"); 
      } 

我如何解决这个问题而不使用alert? 我的文本框处于使用更新面板的窗体中。

谢谢。

回答

1

尝试:

function SelectValue(source, eventArgs) { 
    document.getElementById('<%= txtCodeProduct.ClientID %>').value = eventArgs.get_value(); 
    setTimeout(function(){ 
      document.getElementById('<%= txtQuantity.ClientID %>').focus(); 
     }, 0); 
} 
+0

工作!很好! 谢谢! – JohnyMoraes

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/