Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET/Javascript错误。偶尔发生';长度为null或不是对象';_Javascript_Asp.net_Web Config_Null - Fatal编程技术网

ASP.NET/Javascript错误。偶尔发生';长度为null或不是对象';

ASP.NET/Javascript错误。偶尔发生';长度为null或不是对象';,javascript,asp.net,web-config,null,Javascript,Asp.net,Web Config,Null,这件事让我很困惑。我有一个web应用程序,它可以执行许多功能,但它要完成的部分是在执行搜索功能时调用web服务并从DB2返回结果 奇怪的是,错误并不总是发生,而且似乎只有在通过vip访问我的web应用程序时才会发生(vip位于负载平衡器上,在2台IIS服务器上循环)。当使用其中一台服务器的直接URL访问web应用程序时,不会出现错误 这让我相信,我的web.config有什么问题吗 我还搜索了我的javascript代码,我没有在任何地方使用长度 请帮帮我,我一直在用头撞墙 用代码更新(我在下面

这件事让我很困惑。我有一个web应用程序,它可以执行许多功能,但它要完成的部分是在执行搜索功能时调用web服务并从DB2返回结果

奇怪的是,错误并不总是发生,而且似乎只有在通过vip访问我的web应用程序时才会发生(vip位于负载平衡器上,在2台IIS服务器上循环)。当使用其中一台服务器的直接URL访问web应用程序时,不会出现错误

这让我相信,我的web.config有什么问题吗

我还搜索了我的javascript代码,我没有在任何地方使用长度

请帮帮我,我一直在用头撞墙

用代码更新(我在下面包括了必要的代码,省略了其余代码):

//Javascript***

函数ValidateSearch(){

//passes search text to webservice
//fills gridview with returned data
//lastly calls javascript function to stop spinner
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "searchComplete", "<script type='text/javascript'>searchComplete();</script>", false);
}

函数ShowWait(){

//passes search text to webservice
//fills gridview with returned data
//lastly calls javascript function to stop spinner
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "searchComplete", "<script type='text/javascript'>searchComplete();</script>", false);
}

函数searchComplete(){

//passes search text to webservice
//fills gridview with returned data
//lastly calls javascript function to stop spinner
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "searchComplete", "<script type='text/javascript'>searchComplete();</script>", false);
//清除以前的搜索文本框
document.getElementById(“”).value=“”;
document.getElementById(“”).value=“”;
spinner.stop();
}

//加价***

    <div class="searchlabel">
    <label>Email Address</label><asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator runat="server" ID="EmailReq"  
                ControlToValidate="txtEmail"  ValidationGroup="TransSearch"
            Display="None"  
            ErrorMessage="<b>Required Field Missing</b><br />Email is required." />  
        <asp:ValidatorCalloutExtender runat="Server" ID="EmailReqE"  
            TargetControlID="EmailReq"  
            HighlightCssClass="validatorCalloutHighlight"  />
</div>
<div class="searchlabel">
        <label>Phone</label><asp:TextBox ID="txtPhone" runat="server" Font-Size="Medium"></asp:TextBox>
            <asp:RequiredFieldValidator runat="server" ID="PhnReq"  
                ControlToValidate="txtPhone"  ValidationGroup="TransSearch"
                Display="None"  
                ErrorMessage="<b>Required Field Missing</b><br />Phone is required." />  
            <asp:ValidatorCalloutExtender runat="Server" ID="PhnReqE"  
                TargetControlID="PhnReq"  
                HighlightCssClass="validatorCalloutHighlight" /> 
    </div> 
<asp:Button ID="btnSearch" runat="server" Text="Search" Width="90px" OnClientClick="return ValidateSearch();" OnClick="Search_Click" />

电子邮件地址
电话
//代码隐藏***

公共无效搜索\u单击(对象发送者,事件参数e) {

//passes search text to webservice
//fills gridview with returned data
//lastly calls javascript function to stop spinner
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "searchComplete", "<script type='text/javascript'>searchComplete();</script>", false);
//将搜索文本传递给webservice
//用返回的数据填充gridview
//最后调用javascript函数停止微调器
ScriptManager.RegisterStartupScript(this.Page,this.GetType(),“searchComplete”,“searchComplete();”,false);

}

可能您的javascript函数没有获得您提供的文本框

document.getElementById('<%# txtEmail.ClientID %>').value
document.getElementById(“”).value
使用以下方法检查值:

alert(document.getElementById('<%# txtEmail.ClientID %>').value ) 
警报(document.getElementById(“”).value)
如果是返回值。这可能是您的微调器停止()的原因;它不起作用


使用警报查看它是否正在进入您的函数。我每次陷入javascript时都会使用它。它帮助我找出函数在哪一行之后给出错误。

它发生在同一个地方还是不同的地方?每次都发生在同一个地方。这并不是一直都会发生。以下是步骤。。。1) 单击搜索按钮2)OnClientClick启动javascript,检查页面\u ClientValidate,返回true并启动spinner.spin(等待gif)3),然后OnClick启动codehehind,webservice在其中调用,并返回数据4)调用javascript函数停止spinner,即是如此。当它出错时,返回结果,但微调器仍在旋转,javascript错误为“Length is null or not a object”,我添加了单击搜索按钮的路径代码。遗漏了任何不必要的代码。就是这样,我不能100%确定错误发生在哪里。我知道它不在代码背后,因为我犯了错误。它发生在调用searchComplete()之前,因为我的文本框没有清除,微调器也没有停止。但正如我所说,这种情况并不是每次都会发生,而且只发生在生产中,这使得调试变得很困难。我明白你的意思,但我还是回到了我最初的问题。如果它在试图获取文本框值时爆炸了,它不是每次都会爆炸吗?正如我前面所说的,当在本地和Dev服务器上运行时,同样的代码可以完美地工作。但在生产过程中(同样的代码)经常会发生爆炸。我将称之为“已应答”。但是我认为运行vip(负载平衡器)会导致这些问题,不管是web.config不正确还是其他原因。我选择了忘记vip(负载平衡器)而只使用direct server ip。我无法通过您提供的代码告诉您到底是什么问题。我认为这可能就是问题所在。但是,当您的函数找不到您发送给它的控件时,会导致“非对象”。因此,这里的问题可能是导致控件(未)加载的原因。jakk220:这可能会解决您的问题。如果(document.getElementById(“”).value)!=""; {//那么你的代码}如果你同时检查文本框邮件和电话,效果会更好。