هل هناك أي طريقة لتعطيل التحقق من جانب العميل لمربع نص تاريخ dojo؟

StackOverflow https://stackoverflow.com/questions/15514

  •  08-06-2019
  •  | 
  •  

سؤال

في المثال الخاص بي أدناه، أستخدم ملف dijit.form.DateTextBox:

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" constraints="{datePattern:'MM/dd/yyyy'}"  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>' />

على سبيل المثال، إذا بدأ المستخدم في إدخال "asdf" في التاريخ الذي يتحول فيه الحقل إلى اللون الأصفر وتظهر رسالة خطأ منبثقة تقول The value entered is not valid..حتى لو قمت بإزالة constraints="{datePattern:'MM/dd/yyyy'}" لا يزال يتم التحقق من صحته.

دون الخوض في تفاصيل حول السبب، أود أن أتمكن من الاحتفاظ بـ dojoType مع الاستمرار في منع التحقق من الصحة في ظروف معينة.

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

المحلول

حاول تجاوز طريقة التحقق من الصحة في الترميز الخاص بك.

سيعمل هذا (تم اختباره للتو):

<input type="text" name="startDate" dojoType="dijit.form.DateTextBox" 
  constraints="{datePattern:'MM/dd/yyyy'}"  
  value='<c:out value="${sessionScope.adminMessageForm.startDate}"/>'
  validate='return true;'
/>

نصائح أخرى

اقتراحي الوحيد هو إزالة dojoType برمجيًا من جانب الخادم أو جانب العميل.ليس من الممكن الاحتفاظ بـ dojoType وعدم التحقق من صحته.ما لم تقم بإنشاء النوع الخاص بك الذي يحتوي على منطق فيه.

لقد واجهت مشكلة مماثلة، حيث يلبي ValidationTextBox جميع احتياجاتي ولكن كان من الضروري تعطيل إجراءات التحقق من الصحة حتى بعد قيام المستخدم بالضغط على إرسال لأول مرة.

كان الحل الذي توصلت إليه هو استنساخ هذا في ValidationConditionalTextBox باستخدام طريقتين جديدتين:

    enableValidator:function() {
        this.validatorOn = true;
    },

    disableValidator: function() {
        this.validatorOn = false;
    },

ثم - في أداة التحقق من الصحة: ​​function() أضفت فحصًا واحدًا:

        if (this.validatorOn)
        { ... }

بشكل واضح إلى حد ما، القيمة الافتراضية لـ validatorOn هي false (يظهر هذا مباشرة في الجزء العلوي من جافا سكريبت).عندما يتم إرسال النموذج الخاص بي، ما عليك سوى الاتصال بـ EnableValidator().يمكنك عرض جافا سكريبت الكامل هنا:

http://lilawnsprinklers.com/js/dijit/form/ValidationTextBox.js

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