我有一个asp:FormView
控件(在ascx文件中),它被加载到一个门户页面以及一些其他控件。asp.net验证控件在javascript中导致“随机”错误
我需要为表单添加验证,但是当我添加任何验证控件时,我会在加载页面时在生成的JavaScript中出现明显的随机错误,并且验证在我需要时无法触发。
这是我已经得到了代码:
<asp:TextBox ID="FPITextBox4" runat="server" Text='<%# Bind("SomeNumber") %>'></asp:TextBox>
<asp:RangeValidator ID="RangeValidator4" runat="server" ControlToValidate="FPITextBox4" Text="*"
ErrorMessage="The number must be a whole number between 0 and 100,000" Type="Integer"
MaximumValue="100000" MinimumValue="0" ToolTip="Must be between 0 and 100,000"></asp:RangeValidator>
这是当页面加载我得到的错误:
Message: Expected ';'
Line: 1159
Char: 60
Code: 0
当我看行1159在生成的代码它看起来像这样:
var ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4 = document.all ?
document.all["ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4"] :
document.getElementById("ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-
47aa-a089-fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4");
立即上面这个代码是:
<script type="text/javascript">
//<![CDATA[
var Page_Validators = new Array(document.getElementById(
"ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d
-47aa-a089-fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4"));
//]]>
</script>
当控件仅仅通过自身实例化到测试页面时,相同的代码工作。
看来,错误只发生在IE 8中。我已经测试了Firefox 3.6中的相同页面,并且它的所有功能都按预期工作。
修正
看来,验证工作。我有一个ValidationSummary
控制集来显示一个消息框,并没有出现这导致我相信验证没有发射。当我将其更改为ShowSummary="true" ShowMessageBox="false"
时,错误消息确实出现并且数据未保存。
因此,现在意味着我有一个随机脚本错误(目前)似乎不会影响页面的工作。
但是,我仍然想删除错误 - 以防万一它隐藏了其他内容。
指定的行似乎没问题。你使用的是Internet Explorer吗? IE有时会给出错误的行号。您可以尝试使用Microsofts脚本编辑器进行调试:http://www.jonathanboutelle.com/mt/archives/2006/01/howto_debug_jav.html – Pbirkoff 2010-02-05 13:21:38
由于错误消息指示javascript行未终止,因此我首先将尝试从100,000删除逗号。 – 2010-02-05 13:24:00
@Pbirkoff - 我正在使用IE浏览器,但是如果我添加并删除其他验证元素,行号会根据添加/删除的代码进行移动。我会尝试Firefox。 – ChrisF 2010-02-05 13:24:44