我得到了一个“;Microsoft JScript运行时错误:对象没有';t支持这种性质或方法“;在我的一个页面上

本文关键字:一个 支持 我的 方法 Microsoft JScript 运行时错误 对象 | 更新日期: 2023-09-27 18:25:51

我有一个.NET应用程序,包含以下aspx代码:

<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default"%>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit"%>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ToolkitScriptManager>
<table>
<tr>
<td>
    <asp:RadioButtonList ID="rblTest" runat="server" AutoPostBack="True" 
        onselectedindexchanged="rblTest_SelectedIndexChanged">
        <asp:ListItem Text="1" Value="1"></asp:ListItem>
        <asp:ListItem Text="2" Value="2"></asp:ListItem>
    </asp:RadioButtonList>
</td>
<td>
    <asp:PlaceHolder ID="ph1" runat="server" Visible="False">
        Some text
    </asp:PlaceHolder>
</td>
</tr>
</table>
</form>
</body>
</html>

然后我有一个C#方法如下:

protected void rblTest_SelectedIndexChanged(object sender, EventArgs e)
{
    if (rblTest.SelectedValue == "2")
        ph1.Visible = true;
    else
        ph1.Visible = false;
}

下面是事故发生的地方。每当我使用autopostback=true的控件时,它就会崩溃。我在大约15个其他表单上使用了相同的语法,这些都很好。我是在某个地方遗漏了一处房产,还是我的方法有问题?我最初在控件周围有一个UpdatePanel,我计划再次添加它,但我需要先让回发工作。

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Default'];
if (!theForm) {
    theForm = document.Default;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();             <-----Crashed at this line.
    }
}
//]]>
</script>

我错过了什么,或者我可能在某个地方犯了一些常见的错误吗?提前感谢您的帮助。

我得到了一个“;Microsoft JScript运行时错误:对象没有';t支持这种性质或方法“;在我的一个页面上

您的__doPostBack脚本正试图提交id为"Default"的表单(请参见document.forms["Default"]行;但您的标记显示了id为"form1"的表单,因此它不起作用的原因很清楚:__doPostBack函数找不到表单,调用theForm.submit()失败。

您可以尝试通过重命名表单以使用id "Default"来修复它,因为我认为您无法控制__doPostBack脚本的生成方式。

相关文章: