jQuery TOOLS - Dateinput вызывает текстовое поле только для чтения - PullRequest
1 голос
/ 15 марта 2012

Я использую функцию dateinput из jQuery TOOLS.Он работает нормально, однако пользователь должен ввести дату вручную.

При использовании метода dateinput кажется, что текстовое поле предназначено только для чтения.

Как разрешить пользователям вводить дату вручную, а также использовать элемент управления выбора?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2014

Он не только делает текстовое поле, которое он должен читать, он также делает все остальные.Я пишу во многих местах, если кому-то там, как мне, крайне необходимо устранить это раздражающее ограничение.

Вы можете видеть, что событие keydown проверяет массив ключей, а затем предотвращаетDefault () при возврате (таким образом,предотвращение прямого ввода / ввода текстовых данных).

        d(document).on("keydown.d", function(a) {
            if (a.ctrlKey) return !0;
            var e = a.keyCode;
            if (8 == e || 46 == e) return b.val(""), f.hide(a);
            if (27 == e || 9 == e) return f.hide(a);
            if (0 <= d(Q).index(e)) {
                if (!u) return f.show(a), a.preventDefault();
                var h = d("#" + c.weeks + " a"),
                    j = d("." + c.focus),
                    g = h.index(j);
                j.removeClass(c.focus);
                if (74 == e || 40 == e) g += 7;
                else if (75 == e || 38 == e) g -= 7;
                else if (76 == e || 39 == e) g += 1;
                else if (72 == e || 37 == e) g -= 1;
                41 < g ? (f.addMonth(), j = d("#" + c.weeks + " a:eq(" +
                    (g - 42) + ")")) : 0 > g ? (f.addMonth(-1), j = d("#" + c.weeks + " a:eq(" + (g + 42) + ")")) : j = h.eq(g);
                j.addClass(c.focus);
                return a.preventDefault()
            }
            if (34 == e) return f.addMonth();
            if (33 == e) return f.addMonth(-1);
            if (36 == e) return f.today();
            13 == e && (d(a.target).is("select") || d("." + c.focus).click());
            return 0 <= d([16,17,18,9]).index(e)
        });

Мне удалось удалить код из минимизированного источника, но при этом я потерял сжатие.Я еще не видел каких-либо негативных последствий (кроме размера файла 42kb => 140kb).

0 голосов
/ 14 ноября 2012

Это ограничение элемента управления DateInput.

Для этого есть открытый запрос: https://github.com/jquerytools/jquerytools/issues/699

...