我在我的aspx頁面的鏈接按鈕上導致驗證問題。我擁有的是帶有兩個文本框,一些驗證控件和一個提交按鈕的頁面。驗證控件已將客戶端腳本設置爲true,並具有驗證組。我的asp圖像按鈕有一個驗證組分配,並導致驗證等於true。我的重點放在了我的第一個文本框中。ASP.NET CasusesValidation =「false」對IE中的鏈接按鈕不起作用
我的鏈接按鈕是一個點擊這裏瞭解更多關於.....我已經指定了驗證組,並將驗證設置爲false。在Chrome中,一切正常。在IE中,當單擊除提交按鈕之外的頁面上的任何位置,或者單擊我的鏈接按鈕時,我的第一個文本框將被驗證並顯示錯誤。現在,如果我再次點擊鏈接按鈕,我會重定向到我期望的頁面。
這對我來說似乎有點不可思議,任何人都有什麼想法?
那麼,我該如何解決這個問題,所以只有點擊提交按鈕後,IE纔會驗證。
這裏是我的代碼如下所示:
<span>Value 1:</span>
<asp:TextBox ID="Value1TextBox" runat="server" />
<asp:RequiredFieldValidator ID="Value1_1_Validator" EnableClientScript="true" ControlToValidate="Value1TextBox" Display="Dynamic" ForeColor="Red" Text="is required" ValidationGroup="MyValGroup" runat="server" />
<asp:RegularExpressionValidator ID="Value1_2_Validator" EnableClientScript="true" ControlToValidate="Value1TextBox" ValidationExpression="\somevalexpression\" Display="Dynamic" ForeColor="Red" Text="is not valid" ValidationGroup="MyValGroup" runat="server" />
...
<span>Value 2:</span>
<asp:TextBox ID="Value2TextBox" runat="server" />
<asp:RequiredFieldValidator ID="Value2_1_Validator" EnableClientScript="true" ControlToValidate="Value2TextBox" Display="Dynamic" ForeColor="Red" Text="is required" ValidationGroup="MyValGroup" runat="server" />
...
...
<asp:ImageButton ID="SubmitButton" ImageUrl="~/Images/submit.png" OnClick="SubmitButton_Click" ValidationGroup="MyValGroup" CausesValidation="true" runat="server" />
...
<asp:LinkButton ID="OurPolicyLink" PostBackUrl="~/Policy.aspx" ValidationGroup="MyValGroup" CausesValidation="false" Text="click here" runat="server" />
我想出了使用jQuery和javascript修復,它不乾淨,但它確實工作。我會認爲只是做導致驗證等於假的就足夠了。也許我錯了。
我有一個腳本的JavaScript文件,這裏是什麼樣子。
$(function() {
$"[id$=_Value1TextBox]").focus();
$("[id$=_Validator]").each(function() {
$(this)[0].enabled = false;
});
$("[id$=_SubmitButton]").click(function() {
$("[id$=_Validator]").each(function() {
$(this)[0].enabled = true;
});
Page_ClientValidate("MyValGroup");
if (!Page_IsValid) {
return false;
}
return true;
});
});