У меня есть стандарт select multiple
Поле ввода HTML, например:
<select multiple="multiple" size="5" id="mysel" name="countries">
<option value="2">Afghanistan</option>
<option value="4">Aland</option>
</select>
Поскольку это - мультивыбор, для выбора больше чем одного значения, необходимо держать клавишу CTRL и выбрать дальнейшие элементы. Однако то, чего я хочу достигнуть, что:
Идея состоит в том, чтобы избежать необходимости нажимать клавишу CTRL и изменять семантику использования этого поля ввода. Элементы должны только можно выбрать и должны не можно выбрать путем нажатия (т.е. переключения избранного состояния).
Я еще не смог реализовать это. Псевдокод должен выглядеть примерно так.
Как я должен реализовать это?
Вы можете использовать следующий фрагмент для достижения желаемого эффекта
$("select[multiple] option").mousedown(function(){
var $self = $(this);
if ($self.prop("selected"))
$self.prop("selected", false);
else
$self.prop("selected", true);
return false;
});
в более старых версиях jQuery, где ()
был недоступен:
$("select[multiple] option").mousedown(function(){
var $self = $(this);
if ($self.attr("selected"))
$self.attr("selected", "");
else
$self.attr("selected", "selected");
return false;
});
Вы правы в желании изменить поведение по умолчанию выберите несколько полей ввода. Они имеют тенденцию внести негативно к пользовательскому опыту, поскольку цель не четко передается, и пользователи могут не понять, как их использовать правильно.
Повторно целенаправляйте в поле «Многофункциональный выбор» не прав. Если вы рассматриваете, что используете Select Memble, то вы можете ревертировать ваш дизайн. Возможно, вы можете использовать флажки вместо этого?
Вот статья по теме: http://www.ryancramer.com/journal /entries/select_multiple/