Есть ли заранее написанное выпадающее меню с низким уровнем воздействия, которое позволяет выбрать любую из 1440 минут, которые есть в дне?

Я, вероятно, напишу свой собственный ... Я хотел проверить, не знает ли кто-нибудь о нем.

В одной форме будет несколько раскрывающихся списков времени. Они не будут тегами <select..> с 1440 вариантами на выбор... У них будет позиция прокрутки по умолчанию, и они будут выглядеть как один раскрывающийся список с 1440 элементами, но будут отображать только элементы прокручиваемой позиции, а отдельные элементы будут сохранены только для раскрывающегося списка.


person 700 Software    schedule 01.11.2010    source источник
comment
<select> с 1440 элементами? Арх. Почему бы не разделить это на два раскрывающихся списка 0..23 и 0..59?   -  person Pekka    schedule 01.11.2010
comment
Мы не хотим их разделять, потому что должно быть AM PM . Получается три выпадающих списка. Пользователи, с которыми мы имеем дело, предпочли бы раскрывающийся список набору текста, и мы хотим иметь позицию прокрутки по умолчанию без значения по умолчанию.   -  person 700 Software    schedule 01.11.2010
comment
У меня была такая же проблема. Я решил, что для неподготовленного человека будет быстрее просто ввести 13:44 в текстовое поле, а не кликабельный пользовательский интерфейс. Я предлагаю вам использовать виджет, который также позволяет напрямую вводить время, многие пользователи предпочтут его. Я мог бы увидеть больше преимуществ, если бы пользователь ограничивался определенными минутными значениями, а не полными параметрами 0-59.   -  person Larry K    schedule 01.11.2010
comment
Мы не хотим их разделять, потому что там должно быть AM PM, либо используйте предложение Ларри К., либо используйте 24-часовые часы. Каждый новобранец в армии понимает это в первый же день, я уверен, что ваши пользователи тоже могут.   -  person Freiheit    schedule 01.11.2010
comment
24-часовые часы FTW. Никогда не понимал, почему кто-то хочет придерживаться AM и PM... это просто сбивает с толку...   -  person Svish    schedule 01.11.2010


Ответы (4)


1440 пунктов в любом выпадающем списке не рекомендуется. Особенно, если их несколько на странице.

Почему бы не поискать какой-нибудь другой контроль времени входа?

... или разбить его на 2 варианта - 1 для часа и 1 для минуты

person Dutchie432    schedule 01.11.2010
comment
Я сказал, что они будут выглядеть как 1440 элементов, но на самом деле в них не будет столько элементов. - person 700 Software; 01.11.2010
comment
Вторая ссылка выглядит как хорошая идея. Я внесу это на рассмотрение. - person 700 Software; 01.11.2010
comment
Ну, тогда я не уверен, о чем вы спрашиваете — как элемент выглядит так, будто в нем 1440 элементов, но нет? - person Dutchie432; 01.11.2010
comment
Искусственная полоса прокрутки была бы односторонней, или элемент, который слишком высок, чтобы занимать место несуществующих элементов. - person 700 Software; 01.11.2010
comment
Все еще не ясно на 100%. Если вы просто пытаетесь получить ввод времени, мне кажется, что вы чрезмерно усложняете процесс или пытаетесь заново изобрести колесо - если только вам не нужно что-то сверхспецифичное, чего они не предлагают. - person Dutchie432; 01.11.2010
comment
@cjavapro, проблема в том, что раскрывающийся список, который выглядит так, как будто он состоит из 1440 элементов, будет совершенно непригоден для использования, независимо от того, как он реализован. - person Mark Ransom; 01.11.2010

Выпадающий список с 1440 записями просто не будет использоваться.

Как насчет обычного текстового поля, чтобы пользователи могли просто вводить время, которое они хотят, быстро (и ввод по-прежнему будет работать без JavaScript), в сочетании с элементами управления прокруткой вверх / вниз, если вам это нужно:

<input type="text" class="spin-time" value="00:00">

<script type="text/javascript">
    // Find and apply to elements with class `spin-time`
    //
    var inputs= document.getElementsByTagName('input');
    for (var i= inputs.length; i-->0;)
        if (inputs[i].className==='spin-time')
            addTimeSpinner(inputs[i]);

    function addTimeSpinner(input) {
        input.onchange= function() { alterTime(0); };
        input.parentNode.insertBefore(makeButton('-', -60), input);
        input.parentNode.insertBefore(makeButton('+', 60), input);
        input.parentNode.insertBefore(makeButton('+', 1), input.nextSibling);
        input.parentNode.insertBefore(makeButton('-', -1), input.nextSibling);

        function makeButton(label, d) {
            var button= document.createElement('input');
            button.type= 'button';
            button.value= label;
            button.onclick= function() { alterTime(d); };
            return button;
        }

        function alterTime(d) {
            // Parse time value, default to 00:00 if doesn't make sense
            //
            var mins= 0;
            var match= input.value.match(/^(\d\d):(\d\d)$/);
            if (match!==null)
                mins= parseInt(match[1], 10)*60+parseInt(match[2], 10);

            // Add time difference, wrapping round
            //
            mins= (mins+d+1440)%1440;

            // Format back to hh:mm string
            //
            input.value= padLeft(Math.floor(mins/60), 2, '0')+':'+padLeft(mins%60, 2, '0');
        }
        function padLeft(v, n, c) {
            v+= '';
            if (v.length>=n) return v;
            return new Array(n-v.length+1).join(c)+v;
        }
    }
</script>

Это круглосуточно. Изменение кода для синтаксического анализа и создания 12-часового формата часов (включая ужасную бородавку с получением 12:00 и 00:00 в правильном направлении) остается в качестве упражнения для тех, кто не полностью ненавидит идею 12-часовых часов. и хотят, чтобы он был искоренен с Земли.

person bobince    schedule 01.11.2010
comment
an exercise for someone who doesn't completely hate the idea of the 12-hour clock and want to see it eradicated from the Earth ИАВТК. - person mway; 01.11.2010

Я бы использовал HTML5 и:

<input type="time" />

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

person Svish    schedule 01.11.2010

В итоге я получил ввод, который открывает список из 20 ссылок, показывающих разное время. Вверху и внизу были ссылки на предыдущую/следующую страницу, которые выглядели как функции page up и page down. Середина списка была либо текущей выбранной опцией, либо текущим временем.

person 700 Software    schedule 30.11.2010