0

私の Visual Studio 2008 (.NET 3.5) の Web サイトでは、ページに 2 つのテキスト ボックスがありonblur、両方に 2 つの異なるイベントがあります。最初のイベントが実行されると、同時に別のイベントも実行されます。なぜなのかわかりません。コードは次のとおりです。

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

ラベルを取りましたが、ここには書きません。また、最初のテキストボックスでタブキーを押すと、両方のonblurイベントが発生しますが、2番目にタブを押すと、2番目の関数のみが実行されます。(Javascript タグも使用しましたが、ここには書きません。) このページは masterpage にあり、masterpage の scriptmanager にサービス参照を追加しました。奇妙なことは、別のウェブサイトで正常に動作することです...! 私は何が欠けているのか、それともばかげた間違いなのか...?

4

1 に答える 1

0

asp.net textbox AutoPostBack = falseを設定すると、asp.netテキストボックスはhtmlテキストボックスのように機能し、コードは正常に機能するはずです。

于 2012-06-11T07:29:32.057 に答える