2010-04-23 35 views
6

Tôi có trình đơn thả xuống nơi người dùng chọn Quốc gia. Nó là một "trường" bắt buộc.Bật/tắt Trình xác thực yêu cầu trên máy khách/CustomValidator không kích hoạt

Bên cạnh đó, có một trường văn bản có tên là Tiểu bang. Nếu người dùng chọn Hoa Kỳ thì trường Trạng thái là bắt buộc. Nếu người dùng chọn ví dụ: Thụy Điển, Nhà nước là không cần thiết, vì Thụy Điển không có tiểu bang.

Ví dụ mã:

<asp:DropDownList runat="server" ID="Country"></asp:DropDownList> 
<asp:RequiredFieldValidator ControlToValidate="Country" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

<asp:TextBox runat="server" ID="State"></asp:TextBox> 
<asp:CustomValidator ClientValidationFunction="DoesntGetFiredIfStateIsEmpty" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

<!-- SO, RATHER THIS TOGETHER WITH CONDITIONAL FIRING --> 
<asp:RequiredFieldValidator ControlToValidate="State" 
       runat="server" Display="Static" ErrorMessage="Required field" /> 

Câu hỏi của tôi với bạn là: Làm thế nào tôi có thể làm cho CustomValidator này xác nhận lửa khi nó là trống rỗng?

Hoặc đặt đơn giản hơn: Làm cách nào để tôi có thể yêu cầu một điều kiện bắt buộc có khả năng xảy ra cháy?

Hoặc đơn giản nhất: Làm cách nào tôi có thể bật/tắt Trình xác thực bắt buộc ở phía máy khách?

Trả lời

10

Hãy thử làm điều này với javascript để kích hoạt và vô hiệu hóa xác nhận

ValidatorEnable(RequiredFieldValidatorId, false); 

Check-out this question that I answered.

+0

Có vẻ hy vọng, nhưng tôi nhận được "val.style là không xác định" trong ASP.NET tạo JS ... – Simeon

+1

Tôi nhận nó hoạt động. Trình xác thực có cha/mẹ có display: none; đặt trên nó, đã phá vỡ chức năng của ValidatorEnable. – Simeon

+5

Tham số đầu tiên thực sự được coi là trình xác nhận hợp lệ, không phải là ID của trình xác thực. – Itison

Các vấn đề liên quan