דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. datepicker dd/mm/yy בדפדפן כרום

datepicker dd/mm/yy בדפדפן כרום

מתוזמן נעוץ נעול הועבר ארכיון code613m
7 פוסטים 2 כותבים 524 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #1

    הייתה לי בעיה שכאשר אני רוצה להציג תאריך בפורמט הנ"ל, הולידציה תמיד בטוחה שזה בפורמט mm/dd/yy ושולחת לי שגיאה כשהיום גדול מ12 לחודש..
    לאחר הרבה שבירת שיניים מצאתי שזו בעיה מוכרת עם דפדפן כרום,
    והפתרון הוא להוסיף את הקוד הבא (שאין לי מושג מה בדיוק הוא עושה.. כלומר מה פירוש הביטוי:

    !/Invalid|NaN/.test
    

    אם מישהו רוצה להסביר - אשמח <!-- s:-) --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":-)" title="מחייך" /><!-- s:-) -->)
    הנה הקוד המלא:

    jQuery.validator.methods.date = function (value, element) {
        var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
        if (isChrome) {
            var d = new Date();
            return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
        } else {
            return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
        }
    };
    

    זו התשובה השנייה בסטאק , מאחר שהראשונה כבר אינה רלוונטית היום.

    פורסם במקור בפורום CODE613 ב19/04/2017 15:19 (+03:00)

    תגובה 1 תגובה אחרונה
    1
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      // זה ליטרל של REGEX בJS.
      כלומר /[A-z]/ זה יוצר מופע של REGEX שהpatern שלו זה [A-z].
      לרגקס בJS יש כמה מתודות (exec ,test מ-RegExp, ועוד match, replace, search, split מהמחלקה string).
      כלומר אם אתה כותב:

      /[A-z]/.test('a')
      

      זה יחזיר true.
      וכעת תוכל לחייך אחרי שתנסה בעצמך:

      /[n?ll]/.test(null)
      

      הבנת? המתודה טסט מקבלת ארגומנט כטקסט. וnull מומר ל"null" כמיטב ה"עוצמה" של js.
      כעת תבין את הקוד שהבאת.

      פורסם במקור בפורום CODE613 ב19/04/2017 19:13 (+03:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      3
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

        אגב לגוף הבעיה, לפי מה שאני רואה פה:
        https://developers.google.com/web/updates/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome#how_do_i_avoid_conflicts_between_the_jquery_datepicker_and_the_native_date_picker
        הפתרון הוא לעשות type=""text" במקום date. ניסית?

        פורסם במקור בפורום CODE613 ב19/04/2017 19:23 (+03:00)

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        0
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #4

          ניסיתי עכשיו וזה לא עובד..

          פורסם במקור בפורום CODE613 ב19/04/2017 19:27 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • A מנותק
            A מנותק
            avr416
            כתב ב נערך לאחרונה על ידי
            #5

            אם אני מבין נכון, מה שאמרת זה מועיל כדי למנוע התנגשות בין הdatepicker המובנה של כרום, ובין הdatepicker של בוטסטרפ או jqueryUI.
            אבל זה לא פותר את הבעיה של הולידציה.

            פורסם במקור בפורום CODE613 ב19/04/2017 19:32 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              @avr416

              אם אני מבין נכון, מה שאמרת זה מועיל כדי למנוע התנגשות בין הdatepicker המובנה של כרום, ובין הdatepicker של בוטסטרפ או jqueryUI.
              אבל זה לא פותר את הבעיה של הולידציה.

              צודק לגמרי. נכנסתי כמו עיור לתוצאה בגוגל, אח"כ שמתי לב שהבעיה היא הולידציה.

              פורסם במקור בפורום CODE613 ב19/04/2017 21:33 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1
              • A מנותק
                A מנותק
                avr416
                כתב ב נערך לאחרונה על ידי
                #7

                הייתה לי טעות, הקוד שהבאתי למעלה לא עובד, מאחר והמתודה: .toLocaleDateString(value) לא ממירה סטרינג.
                לכן צריך לשנות את הקוד לקוד הזה:

                jQuery.validator.methods.date = function (value, element) {
                    var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
                    if (isChrome) {
                           var d = value.split("/"); 
                           return this.optional(element) || !/Invalid|NaN/.test(new Date(d[1] + "/" + d[0] + "/" + d[2]));
                    } else {
                        return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
                    }
                };
                

                גם הוא מופיע שם בסטאק בהמשך התשובות..

                פורסם במקור בפורום CODE613 ב23/10/2017 21:36 (+03:00)

                תגובה 1 תגובה אחרונה
                2

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום