2011-02-08 1 views
4

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

Есть ли способ сделать это посередине, когда его можно щелкнуть, чтобы вы могли прокручивать вверх или вниз?

Надеюсь, это имеет смысл!

+1

Вы хотите, чтобы вы выбрали среднее значение по умолчанию или хотите, чтобы окно прокрутки отображалось над и под элементом выбора, а не только под ним? – Benubird

+0

Правильно: поле прокрутки появится над и под элементом выбора, а не под ним. – amaseuk

+0

Было бы хорошо, если это примерно посередине? (в худшем случае - на 10) – Knu

ответ

2

использование selected атрибут

<select name="years"> 
    <option>1900</option> 
    <option>1901</option> 
    <option>1902</option> 
    <option>1903</option> 
    <option>1904</option> 
    <option selected="selected">1905</option> 
    <option>1906</option> 
    <option>1907</option> 
    <option>1908</option> 
    <option>1909</option> 
    <option>1910</option> 
    </select> 

пример: http://jsfiddle.net/tnU4K/

+0

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

+0

@ Andy E да. Другой вариант может состоять в том, чтобы иметь значение, отличное от года, с общим текстом, и когда пользователь нажимает, чтобы удалить его с помощью javascript – Sotiris

0

Сделать значение где-то в середине (возможно, 1950) по умолчанию. Когда кто-то нажимает кнопку, выбранное значение будет видимым, поэтому вы можете прокручивать вверх или вниз.

1

0 Касательно <select> Элемент? Не в стандартном, кросс-браузерном способе. Некоторые браузеры могут (untested) позволяют вам манипулировать свойством scrollTop элемента select во время просмотра списка, но я не буду рассчитывать на него. Единственный способ начать посередине - выбрать средний год по умолчанию.

Лично я не стал бы беспокоиться. Большинство пользователей знают, что они могут набирать при фокусировке <select> в любом случае — Я редко использую мышь, чтобы выбрать опцию в выпадающем списке <select>.

0

Вы всегда могли бы пойти боров дикое и сделать что-то вроде этого с помощью JQuery:

//get number of options 
var optCount = $('#example option').length; 
//divide by 2 and round up for odd numbers 
var midPoint = Math.round(optCount/2); 
//select that index item 
$("#example option:eq(midPoint)").attr("selected", "selected"); 

Я не проверял, но он должен работать.