2009-04-21 33 views
10

Tôi đang sử dụng xác thực ASP.NET cũ (ugh) cho quy trình thanh toán. Tôi có một hộp kiểm - "Tôi sẽ gọi bằng chi tiết thẻ tín dụng của tôi" -. Nếu được chọn, tôi cần tắt trình xác thực trường bắt buộc và trình xác thực cc cho số thẻ tín dụng cả trên máy khách và trên Postback.Tắt một số điều khiển xác thực ASP.Net khi hộp kiểm được chọn

Làm cách nào để thực hiện?

Trả lời

11

Bạn có thể vô hiệu hóa các trình xác nhận client-side (trong javascript):

function disable(validatorId) 
{ 
    var validator = document.getElementById(validatorId); 
    ValidatorEnable(validator, false); 
} 

đâu validatorId là ClientId của trình xác thực bị vô hiệu hóa. Xem this page để có ví dụ hoàn chỉnh.

+0

Sẽ kiểm tra và thực hiện hành động phù hợp - cảm ơn bạn. –

+1

Tôi cần thêm thông tin sau đây sau khi ValidatorEnable() để ẩn bất kỳ thông báo nào của trình xác thực hiện có. validator.isvalid = true; ValidatorUpdateDisplay (trình xác thực); –

+0

Một giải pháp tốt hơn sẽ được sử dụng bộ chọn jQuery của những người xác nhận hợp lệ, nơi họ có thể có một trạng thái css chung, chẳng hạn như, ẩn – Jaider

3

Bạn có thể vô hiệu hóa các trình xác nhận server-side:

MyFieldValidator.Enabled = MyCheckBox.Checked 

Page.Validate() 
If Page.IsValid Then 
    'stuff 
end if 
2

Nếu bạn vô hiệu hóa phía máy chủ sau đó bạn có thể làm

button1.CausesValidation = False 

trong CheckChangedEvent bạn này là hữu ích hơn nếu bạn có rất nhiều xác nhận và cần phải vô hiệu hóa tất cả chúng.

+0

void được bảo vệ NoValidation_CheckedChanged (đối tượng người gửi, EventArgs e) { SubmitButton.CausesValidation =! NoValidation.Checked; } –

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