私の 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 にサービス参照を追加しました。奇妙なことは、別のウェブサイトで正常に動作することです...! 私は何が欠けているのか、それともばかげた間違いなのか...?