Có cách nào để vô hiệu hóa Xác thực jQuery cho một trình xác nhận hợp lệ nhất định (thẻ tín dụng) để nó chỉ xảy ra onblur, thay vì onkeyup không?Xác thực jQuery ASP.net MVC 3; Vô hiệu hóa OnKeyUp không phô trương?
Dựa trên các tài liệu hướng dẫn jQuery Validator Tôi nghĩ tôi có thể làm một cái gì đó như thế này:
$(function() {
$("[data-val-creditcard]").validate({
onkeyup: false
})
});
Tuy nhiên, nó dường như không được làm việc.
Tôi cũng đã cố gắng làm như sau trên validator của tôi:
public class CreditCardValidator : DataAnnotationsModelValidator<CreditCardAttribute>
{
string _message;
public CreditCardValidator(ModelMetadata metadata, ControllerContext context, CreditCardAttribute attribute)
: base(metadata, context, attribute)
{
_message = attribute.ErrorMessage;
}
public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
{
var rule = new ModelClientValidationRule
{
ErrorMessage = _message,
ValidationType = "creditcard"
};
rule.ValidationParameters.Add("onkeyup", false);
return new[] { rule };
}
}
Nó không làm việc một trong hai, nhưng tôi chỉ tham gia một đâm vào sử dụng hợp lý ValidationParameters.
Thật khó chịu khi nhập số thẻ tín dụng vào biểu mẫu và thay đổi ngẫu nhiên từ không hợp lệ thành hợp lệ, sau đó quay lại không hợp lệ.
Bất kỳ ý tưởng nào? Cảm ơn!
về cách tắt khóa bằng cách trả về false. – Sam
Đây là phương pháp duy nhất tôi tìm thấy đã có thể ngăn chặn việc xác thực khóa. Đó là quá nhiều như tôi đã thực hiện một cuộc gọi ajax để xác nhận đầu vào. Cuối cùng, tôi thiết lập một thuộc tính data trên phần tử input được kiểm soát bởi kết quả ajax của một sự kiện onchange cho phần tử input. Điều này cho phép jquery xác thực để có một trả về đơn giản là true hoặc false trong khi vẫn thực hiện một yêu cầu tới máy chủ để xác thực cơ sở dữ liệu. –
Có một số sự kiện để ngăn chặn, tôi đã tạo một trình giữ chỗ đơn giản cho chúng, 'var fnfalse = function() {return false; } ', và sau đó được sử dụng để chặn chức năng,' $ (phần tử) .keyup (fnfalse) .blur (fnfalse) .focusout (fnfalse); '. –