我有一個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