/ / Jquery कोड को सामान्य बनाएं? - जावास्क्रिप्ट, jquery, asp.net-mvc-3

Jquery कोड जेनेरिक बनाओ? - जावास्क्रिप्ट, jquery, asp.net-mvc-3

मेरा Jquery कोड मूल रूप से कॉपी-पेस्ट पर एक टेक्स्टबॉक्स के मान को मान्य करता है यह कोड कई पृष्ठों में कई इनपुट फ़ील्ड पर लागू होता है। सभी पृष्ठ एक सामान्य जावास्क्रिप्ट फ़ाइल और एक सामान्य लेआउट पृष्ठ का उपयोग करते हैं

var regex = /^[A-Za-z0-9AEIOUaeiou.-~`""]*$/;
$("#InputField1").bind("input propertychange", function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});

हर पृष्ठ पर यह लिखने के बजाय, वहाँ हैकिसी भी तरह से इस कोड को अधिक सामान्य बनाने के लिए ?? यही है, कोड के निम्नलिखित भाग को लेआउट पृष्ठ या जावास्क्रिप्ट पेज पर कहीं एक बार लिखा जा सकता है ??

var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}

उत्तर:

उत्तर № 1 के लिए 1

यह jQuery के बारे में भयानक चीजों में से एक है। आप इसे वैश्विक जावास्क्रिप्ट फ़ाइल में कर सकते हैं:

(function($){
$.fn.validatePropertyChange = function() {

return this.each(function() {
var self = $(this);
var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū.-~`""]*$/;
$(self).bind("input propertychange", function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});
});
};
})(jQuery);

तो बस कॉल करें:

$("#InputField1").validatePropertyChange();

और आप Ids की श्रृंखला भी बना सकते हैं, जैसे:

$("#InputField1, #InputField2").validatePropertyChange();

और CSS चयनकर्ताओं का भी उपयोग करें

$(".required-field").validatePropertyChange();

जवाब के लिए 3 № 2

यह सब सामान्य करें। सभी मान्यता तत्वों में एक ही सीएसएस वर्ग होना चाहिए, उदाहरण के लिए .requires- मान्यता उन्हें पहचानने के लिए। फिर आप उन्हें एक सामान्य तरीके से चुन सकते हैं:

    var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū.-~`""]*$/;
$(".requires-validation").bind("input propertychange", function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});