在我的 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 中添加了服务引用。奇怪的是在另一个网站上工作正常......!我错过了什么或一些愚蠢的错误......?