簡體   English   中英

禁用JS時不觸發服務器端驗證

[英]Server side validation not firing when JS Disabled

我正在嘗試在禁用JS時在服務器端驗證ASP.NET BasicDatePicker控件,但似乎無法觸發該事件。

有JS驗證(使用.NET驗證程序),但我們仍在使用無效日期進行批量搜索。 這向我表明,垃圾郵件機器人或其他僵屍網絡正在繞過JavaScript驗證。 我們已經使用FF插件來禁用JavaScript來測試該字段是否經過驗證,但是回發事件似乎沒有觸發。

代碼在下面,對您的幫助將不勝感激。

ASP.NET ASPX頁面

<div align="center">
    {EXTRA MARKUP REMOVED}
    <asp:Label ID="Label3" runat="server" Text="<%$ Resources:words, Arrival_Date %>"></asp:Label>
    <BDP:DateRangeValidator ID="DateRangeValidator1" runat="server" ErrorMessage="DateRangeValidator"
        ControlToValidate="datefrom" Text="**"></BDP:DateRangeValidator><BDP:IsDateValidator
            ID="IsDateValidator2" runat="server" ErrorMessage="IsDateValidator" ControlToValidate="datefrom"
            Text="*"></BDP:IsDateValidator><br />
    <BDP:BDPLite ID="datefrom" runat="server" TextBoxColumns="12" />
    &nbsp;<hlp:popup ID="popup4" runat="server" contextid="hlp_arrivaldate" />
    {EXTRA MARKUP REMOVED}
    <asp:Button ID="Button1" runat="server" Font-Size="11px" Text="<%$ Resources:words, Search %>"
        UseSubmitBehavior="False" OnClick="Button1_Click" />
    <div style="padding-bottom: 5px">
        <asp:Label ID="serverErrorMessage" runat="server" Visible="false" />
    </div>
</div>

BUTTON1_CLICK事件(不會引發火災)

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

    'check for stuff in the date field
    If InStr(Me.datefrom.ToString, "http") > 0 Then Exit Sub
    If InStr(Me.datefrom.ToString, "//") > 0 Then Exit Sub
    If InStr(Me.txtPropertyLike.ToString, "http") > 0 Then Exit Sub
    If InStr(Me.txtPropertyLike.ToString, "//") > 0 Then Exit Sub

    'test the date, and exit if not valid
    Dim datetest As Date = CDate("01-Jan-2001")
    Try
        datetest = CDate(Me.datefrom.SelectedDate)
        If datetest < Today Or DateDiff(DateInterval.Year, Today, datetest) > 2 Then
            datetest = CDate("01-Jan-2001")
        End If
    Catch
    End Try
    If datetest = CDate("01-Jan-2001") Then
        serverErrorMessage.Text = "Date be within the next 2 calendar years."
        serverErrorMessage.Visible = True
        Exit Sub
    End If
End Sub

我知道這可能是愚蠢的。 只是不知道是什么,而且因為我已經沒有頭發了,所以沒有東西可以拉了。 :(

傑格

根據我的理解,如果您將使用Page.IsValid,它將解決您的問題。

喜歡

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
if (Page.IsValid)
   {
    // your code 
   } else {
   // some error message to user 
  }

為了使此屬性返回true,當前驗證組中的所有驗證服務器控件都必須成功驗證。

讓我知道它可以解決您的問題。 樂意效勞 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM