سؤال

هل يمكن أن نلقي نظرة على هذه http://jsbin.com/osolo/ من فضلك؟

إذا قمت بإدخال بريد إلكتروني في الحد الأدنى العمر بدلا من عدد ثم ضرب تقديم هذا ما يؤكد استخدام مسج المصادقة باستخدام تعبير عادي في طريقة التحقق من صحة مخصصة، ويعمل هذا ولكن أنا أبحث الآن لجعلها أكثر قليلا ديناميكية.

في طريقة التحقق من صحة مخصصة خط

var data = $(element).metadata(); 

والاستيلاء على بيانات التعريف عن عنصر يتم التحقق من صحته، ما أود القيام به هو استخدام

data.validateOptions.regex

وكما التعبير المعتاد لاختبار مع (لا استطيع رؤية هذا كونه مشكلة)، ما أستطيع أن أرى كونها مشكلة هو أنه إذا كان المجال لا تتحقق، بدلا من استخدام الرسالة التي يتم توفيرها عند استدعاء

jQuery.validator.addMethod(name, method, message)

وأود أن استخدام

data.validateOptions.message

وكرسالة خطأ من داخل أسلوب مخصصة، يمكن لأي شخص لي نقطة في الاتجاه الصحيح من فضلك؟

والشكر

وOneShot

هل كانت مفيدة؟

المحلول

وأعتقد أن الجواب اليكس لا تعمل بسبب السلاسل ثابتة في JS.

وعلى الرغم من انها قريبة. بدءا مع رمز اليكس، إذا قمت بإنشاء إغلاق تحتوي على كائن البيانات (أو مجرد سلسلة الرسالة) وأيضا وظيفة إعادة الرسالة، يمكنك تمرير الدالة كما الوسيطة الثالثة لدعوة addmethod. مثل ذلك:

(function() {
    var data = {};
    var messager = function() {
        return data.validateOptions.message;
    };
    jQuery.validator.addMethod("perorgproperty", function(value, element) { 
        debugger; 
        //alert('testing perorgproperty'); 
        data = $(element).metadata();
        return this.optional(element) || /^\d+$/i.test(value); 
    }, messager);
})();

نصائح أخرى

وماذا عن خلق الإغلاق؟

var data = {};
jQuery.validator.addMethod("perorgproperty", function(value, element) { 
    debugger; 
    //alert('testing perorgproperty'); 
    data = $(element).metadata(); 

    return this.optional(element) || /^\d+$/i.test(value); 
}, data.validateOptions.message); 

وطالما يتم تقييم الدالة قبل الرسالة، أن ليس message مجرد تمريرها في بالرجوع؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top