0
<script type="text/javascript">
function ValidateProductID(sender, args)
{
    var productID = document.getElementById('<%=txtProductID.ClientID%>').value;
    var productType = document.getElementById('<%=rcbProduct.ClientID%>').value;
    if (productID != "" && productType == "") {
        args.IsValid = false;
    }
    else
        args.IsValid = true;
}

自定义验证器的此脚本正在引发异常。

An exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code Additional information: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

有人可以告诉我如何解决它。

4

2 回答 2

2

添加 ClientIDMode="Static"到那些文本框(或任何它们)并使用document.getElementById('txtProductID').value;

根据 docs,设置ClientIDModetoStatic意味着:

ClientID 值设置为 ID 属性的值。

这意味着 ID 不会被某些算法更改,txtProductID而是您必须使用txtProductID.ClientID.

通常你得到的错误是因为你把那个脚本放在其他一些控件runat="server"里面。上面的解决方案可能是您最简单的解决方案,尽管没有更多代码很难说。

于 2015-03-24T16:39:48.033 回答
0

显然,我将我的脚本从内容模板中取出,将其与现有代码一起移入,它就可以工作了!

于 2015-03-24T16:57:07.293 回答