驗證控制項失效,求助解決方案

來源:互聯網
上載者:User

     緊急事件:我的驗證控制項失效了,如下: 

Code
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
    </asp:ScriptManager>
    <div>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"
            Display="None" ControlToValidate="TextBox1"></asp:RequiredFieldValidator><ajaxToolkit:ValidatorCalloutExtender
                runat="server" TargetControlID="RequiredFieldValidator1">
            </ajaxToolkit:ValidatorCalloutExtender>
        <asp:Button ID="Button1" runat="server" Text="Button"/>
    </div>
    </form>
</body>

    點擊Button會引發驗證控制項對TextBox的驗證,當TextBox為空白時,不能提交頁面,沒有任何的問題。但我做如下修改,將Button的Enable屬性置為false,然後在觸發某一事件後,Button的Enable屬性為true,這時驗證控制項就會失去作用,代碼如下:

Code
 <script language="javascript" type="text/javascript">
        function pageLoad()
        {
           $get("TextBox2").onchange=textboxOnchange;
        }
        function textboxOnchange()
        {
         $get("Button1").disabled="";
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
    </asp:ScriptManager>
    <div>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"
            Display="None" ControlToValidate="TextBox1"></asp:RequiredFieldValidator><ajaxToolkit:ValidatorCalloutExtender
                runat="server" TargetControlID="RequiredFieldValidator1">
            </ajaxToolkit:ValidatorCalloutExtender>
        <asp:Button ID="Button1" runat="server" Text="Button" Enabled="false" />
    </div>
    </form>
</body>

     這是為什麼呢?我分析了這兩種情況Button在客戶對產生的程式碼:

     第一種情況:<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="Button1" />
    第二種情況: <input type="submit" name="Button1" value="Button" id="Button1" disabled="disabled" />

   

    第二種情況真的沒有產生驗證代碼,我發現只要在伺服器端規定Button的Enable屬性,驗證控制項就會失效,在用戶端就規定就不會存在這個問題。

    能否解決這個問題,是驗證控制項一直起作用,望各位高手指導,我這裡先謝謝了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.