2009-07-01 21 views
71

Cách tốt nhất để xác định xem một biểu mẫu trên trang ASPX có hợp lệ trong JavaScript không?Xác định xem trang có hợp lệ trong JavaScript hay không - ASP.NET

Tôi đang cố gắng kiểm tra xác thực của điều khiển người dùng đã được mở bằng JavaScript window.showModalDialog() và kiểm tra thuộc tính 'Page.IsValid' ở phía máy chủ không hoạt động. Tôi đang sử dụng ASP.NET kiểm soát xác nhận để xác nhận trang.

Trả lời

159

Nếu tôi có một trang đang sử dụng một loạt các điều khiển xác thực ASP.NET, tôi sẽ sử dụng mã tương tự như sau để xác thực trang. Thực hiện cuộc gọi trên một đầu vào gửi. Hy vọng rằng mẫu mã này sẽ giúp bạn bắt đầu!

<input type="submit" value="Submit" onclick"ValidatePage();" /> 

    <script type="text/javascript"> 

    function ValidatePage() { 

     if (typeof (Page_ClientValidate) == 'function') { 
      Page_ClientValidate(); 
     } 

     if (Page_IsValid) { 
      // do something 
      alert('Page is valid!');     
     } 
     else { 
      // do something else 
      alert('Page is not valid!'); 
     } 
    } 

</script> 
+2

Bạn trả lời cộng với đọc bài sau: http: //www.velocityreviews .com/forums/t292061-related-pageclientvalidate-function.html đã giúp tôi giải quyết vấn đề của mình. –

+1

Làm cách nào để sửa đổi mã trên nếu tôi có nhiều nhóm xác thực trên trang và tôi chỉ cần kiểm tra xem một nhóm có hợp lệ không? –

+5

Cập nhật - Tôi đã xóa cuộc gọi 'Page_ClientValidate()' và nó hoạt động :) –

1

Bạn có thể sử dụng jQuery và plugin Validation để thực hiện xác thực phía ứng dụng khách. Điều này sẽ làm việc với cả hai thẻ html và điều khiển máy chủ asp.net. Phil Haack has a good sample project sẽ hiển thị cho bạn những điều cơ bản.

Điều này SO question cũng có đánh giá sâu về phương pháp này.

6

Các điều khiển xác nhận ASP.NET lộ một API phía khách hàng mà bạn có thể sử dụng với javascript: http://msdn.microsoft.com/en-us/library/aa479045.aspx

Bạn sẽ có thể kiểm tra các đối tượng Page_IsValid để xem nếu một trong các điều khiển xác nhận không hợp lệ.

9

Bạn đang kiểm tra cho Page.IsValid nơi bạn nên kiểm tra Page_IsValid (đó là một biến tiếp xúc bởi sự xác nhận NET) :)

+0

Tôi quên đề cập đến rằng tôi đã kiểm tra thuộc tính Page.IsValid ở phía máy chủ trên nó không hoạt động. –

3
$("input[id$=Button2]").click(function() { 
    var validated = Page_ClientValidate('repo'); 
    if (validated) { 
     // JavaScript code. 
    } 
}); 
0

Set ValidationGroup sở hữu đối với từng kiểm soát asp.net validator trong trang của bạn , bạn phải cung cấp cùng một tên cho ValidationGroup trong một trang.

Ví dụ:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator> 
    <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator> 
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator> 

Sau đó trong cuộc gọi javascript của bạn như Page_ClientValidate("ValidationGroup")

Ví dụ:

function ValidatePage(){ 
if(Page_ClientValidate("Validate")){ //validate using above validation controls group 
     //validation return true section 
} 
else{ 
     //validation return false section 
} 
} 
Các vấn đề liên quan