সুতরাং আমি কেন এটি কাজ করে না তার সম্পর্কে আরও গভীর দিকে যাচ্ছি কারণ আমি এমন এক ব্যক্তি যিনি হা হা না জেনে রাতে ঘুমাতে পারেন না। আমি jQuery যাচাইকরণ 1.10 এবং মাইক্রোসফ্ট jQuery আনব্রুটসিভ বৈধতা 2.0.20710.0 ব্যবহার করছি যা 1/29/2013 এ প্রকাশিত হয়েছিল।
আমি jQuery যাচাইকরণে সেটডেফল্টস পদ্ধতিটি অনুসন্ধান করে শুরু করেছিলাম এবং এটি আনমিনাইড ফাইলের 261 লাইনে পেয়েছি। এই সমস্ত ফাংশনটি আসলে আপনার জসন সেটিংসকে বিদ্যমানতে মিশ্রিত করে$.validator.defaults
যা উপেক্ষা করা সম্পত্তি ": গোপন" এ সেট করা হচ্ছে jQuery যাচাইকরণে সংজ্ঞায়িত অন্যান্য ডিফল্ট সহ initial সুতরাং এই সময়ে আমরা উপেক্ষা অগ্রাহ্য করেছি। এখন দেখা যাক এই ডিফল্ট সম্পত্তিটি কোথায় উল্লেখ করা হচ্ছে।
আমি কোডটি যখন সন্ধান করেছি তখন কোথায় $.validator.defaults
রেফারেন্স করা হচ্ছে তা দেখার জন্য। আমি লক্ষ্য করেছি যে কেবলমাত্র একটি ফর্ম বৈধকারীর জন্য কনস্ট্রাক্টর ব্যবহার করছেন, jQuery বৈধতা আনমিনিফাইড ফাইলে 170 লাইন।
// constructor for validator
$.validator = function( options, form ) {
this.settings = $.extend( true, {}, $.validator.defaults, options );
this.currentForm = form;
this.init();
};
এই মুহুর্তে একটি বৈধকারক সেট করা যে কোনও ডিফল্ট সেটিংস মার্জ করে ফর্ম বৈধকারীর সাথে সংযুক্ত করে। আপনি যখন কোডটি যাচাইকরণ, হাইলাইটিং, আনহাইটলাইটিং ইত্যাদি করছেন তখন তারা যখন দেখেন তখন তারা উপেক্ষা সম্পত্তিটি টেনে আনার জন্য বৈধীকরণ.সেটিংস অবজেক্টটি ব্যবহার করে। সুতরাং আমাদের নিশ্চিত করতে হবে যে আমরা যদি সেটডেফাল্টস পদ্ধতিটি উপেক্ষা করে সেট করতে হয় তবে এটি $ ("ফর্ম") এর আগে উপস্থিত হতে হবে। বৈধতা () বলা হওয়ার আগে।
আপনি যদি Asp.net MVC এবং অব্যক্ত প্লাগইন ব্যবহার করছেন, তবে আপনি জাভাস্ক্রিপ্টটি দেখে যাচাই করতে পারবেন যা ডকুমেন্টে বলা হয়। আমি ডকুমেন্টে আমার সেটডাফল্টগুলিও ডেকেছি। প্রস্তুতি ব্লক যা স্ক্রিপ্টগুলির পরে কার্যকর হতে চলেছে, jquery যাচাইকরণ এবং আপত্তিজনক কারণ আমি এই স্ক্রিপ্টগুলিকে এইচটিএমএলটিতে কল করার আগে তার সংজ্ঞা দিয়েছি। সুতরাং বৈধতার সময় লুকানো উপাদানগুলি এড়িয়ে যাওয়ার ডিফল্ট কার্যকারিতাটিতে আমার কলটির স্পষ্টত কোনও প্রভাব ছিল না। এখানে বেশ কয়েকটি বিকল্প রয়েছে।
বিকল্প 1 - আপনি জুয়ান মেলাদোকে ডকুমেন্টের বাইরে কল থাকতে পারে বলে উল্লেখ করতে পারেন ready যা স্ক্রিপ্টটি লোড হওয়ার সাথে সাথেই কার্যকর হবে। আমি এটির সময় সম্পর্কে নিশ্চিত নই যেহেতু ব্রাউজারগুলি এখন সমান্তরাল স্ক্রিপ্ট লোড করতে সক্ষম। আমি যদি শুধু সতর্ক হয়ে থাকি তবে দয়া করে আমাকে সংশোধন করুন। এছাড়াও, এর আশেপাশে বিভিন্ন উপায় রয়েছে তবে আমার প্রয়োজনের জন্য আমি এই পথে নামিনি।
বিকল্প 2 এ - আমার দৃষ্টিতে নিরাপদ বাজি হ'ল $.validator.setDefaults({ ignore: '' });
ডকুমেন্টের অভ্যন্তরটি কেবল প্রতিস্থাপন করা event এর সাথে ইভেন্টটি প্রস্তুত করুন $("form").data("validator").settings.ignore = "";
। প্রদত্ত ফর্মের জন্য আপনার উপাদানগুলিতে প্রতিটি বৈধতা দেওয়ার সময় এটি jQuery যাচাইকরণের দ্বারা ব্যবহৃত উপেক্ষা করা সম্পত্তিটিকে পরিবর্তিত করবে।
বিকল্প 2 বি - কোডটিতে আরও কিছুক্ষন দেখার পরে আপনি $("form").validate().settings.ignore = "";
উপেক্ষা সম্পত্তিটি সেট করার একটি উপায় হিসাবেও ব্যবহার করতে পারেন । কারণটি হ'ল বৈধতা ফাংশনটি দেখার সময় এটি পরীক্ষা করে দেখায় যে $.data()
ফাংশনের মাধ্যমে কোনও বৈধীকরণ বস্তু ইতিমধ্যে ফর্ম উপাদানটির জন্য সংরক্ষণ করা হয়েছে । যদি এটি ফর্ম উপাদানটির সাথে সঞ্চিত কোনও বৈধীকরণ বস্তুটি খুঁজে পায় তবে এটি অন্য একটি তৈরি করার পরিবর্তে কেবল বৈধকরণকারী বস্তুটি ফেরত দেয়।