0

在我的 Visual Studio 2008 (.NET 3.5) 网站中,我在一个页面中有两个文本框,并且两者都有两个不同onblur的事件。当第一个事件被执行时,同时另一个事件也被执行。我不明白为什么会这样。这是代码:

<asp:TextBox runat="server" ID="txtBK_CODE" Width="236px"
      CssClass="inp-form" MaxLength="8" onblur="javascript:SearchBK();"></asp:TextBox>
<asp:TextBox runat="server" ID="txtSL_CODE" Width="236px"
      CssClass="inp-form" MaxLength="8"onblur="javascript:SearchSL();"></asp:TextBox>

现在这个函数将调用 webservice 函数,代码如下:

 function SearchBK() {
      var textInput = document.getElementById('<%=txtBK_CODE.ClientID %>');
      ValidateBKSLCode.ValidateBK_CODE(textInput.value, OnSearchCompleteBK, OnErrorBK);
      loaded = true;
 }

 function OnErrorBK(result) {
      alert(result.get_message());
 }

 function OnSearchCompleteBK(result) {
      document.getElementById('<%=lblBK_NAME.ClientID %>').innerHTML = "";
      document.getElementById('<%=lblBK_NAME.ClientID %>').innerHTML = result;
 }

 function SearchSL() {
      var textInput = document.getElementById('<%=txtSL_CODE.ClientID %>');
      ValidateBKSLCode.ValidateSL_CODE(textInput.value, OnSearchCompleteSL, OnErrorSL);
      loaded = true;
 }
 function OnErrorSL(result) {
      alert(result.get_message());
 }

 function OnSearchCompleteSL(result) {
      document.getElementById('<%=lblSL_CODE.ClientID %>').innerHTML = "";
      document.getElementById('<%=lblSL_CODE.ClientID %>').innerHTML = result;
 }

我拿了标签,但没有在这里写。此外,当我在第一个文本框中按 tab 键时,两个onblur事件都会被触发,但是当第二个按 tab 时,只执行第二个函数。(也使用了 Javascript 标签,但这里没有写。)这个页面在 masterpage 中,我在 masterpage 的 scriptmanager 中添加了服务引用。奇怪的是在另一个网站上工作正常......!我错过了什么或一些愚蠢的错误......?

4

1 回答 1

0

设置 asp.net 文本框 AutoPostBack= false 并且您的 asp.net 文本框将像 html 文本框一样运行,那么您的代码应该可以正常工作

于 2012-06-11T07:29:32.057 回答