क्या किसी निश्चित सत्यापनकर्ता (क्रेडिट कार्ड) के लिए jQuery सत्यापन को अक्षम करने का कोई तरीका है ताकि यह केवल ऑनकीप की बजाय ऑनब्लर पर हो?एएसपीनेट एमवीसी 3 jQuery सत्यापन; Unobtrusive OnKeyUp अक्षम करें?
jQuery सत्यापनकर्ता प्रलेखन मैंने सोचा कि मैं कुछ इस तरह कर सकता है के आधार पर:
$(function() {
$("[data-val-creditcard]").validate({
onkeyup: false
})
});
हालांकि, यह काम करने लगता है।
मैं अपने सत्यापनकर्ता पर निम्न कार्य करने की कोशिश की:
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 };
}
}
यह या तो काम नहीं करता है, लेकिन मैं सिर्फ ValidationParameters के उचित उपयोग पर एक चाकू ले रहा था।
एक फॉर्म में क्रेडिट कार्ड नंबर दर्ज करने के लिए परेशान करना और इसे अमान्य से वैध में बदलना, फिर वापस अमान्य होना है।
कोई विचार? धन्यवाद!
झूठी वापसी करके कीप को अक्षम करने पर शानदार युक्ति। – Sam
यह एकमात्र दृष्टिकोण था जो मैंने पाया कि कुंजीपटल सत्यापन को दबाने में सक्षम था। यह अत्यधिक था क्योंकि मैं इनपुट को प्रमाणित करने के लिए अजाक्स कॉल कर रहा था। अंत में, मैंने इनपुट तत्व पर एक डेटा विशेषता सेट की जिसे इनपुट तत्व के लिए एक अस्थायी घटना के AJAX परिणाम द्वारा नियंत्रित किया गया था। यह डेटाबेस सत्यापन के लिए सर्वर से अनुरोध करते समय jquery को एक साधारण वापसी सही या गलत होने की अनुमति देता है। –
दबाने के लिए कई घटनाएं थीं, मैंने उनके लिए एक सरल प्लेसहोल्डर बनाया, 'var fnfalse = function() {वापसी झूठी; } ', और उसके बाद कार्यक्षमता को अवरुद्ध करने के लिए उपयोग किया जाता है,' $ (तत्व) .keyup (fnfalse) .blur (fnfalse)। फ़ोकसआउट (fnfalse); '। –