Выберите вариант всегда выберите - PullRequest
0 голосов
/ 08 октября 2009

У меня есть настройки выбора полей формы, как показано ниже:

<select name="options[]" multiple="multiple">
  <option value="1" selected="selected">Option 1</option>
  <option value="2">Option 2</option>
  <option value="3">Option 3</option>
  <option value="4">Option 4</option>
</select>

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

Возможно ли это сделать? Я не возражаю против использования JavaScript или Jquery для достижения этой цели, я попытался сделать опцию «выбранной» и «отключенной», но пользователь все еще может отменить выбор первой опции.

Приветствия

Eef

Ответы [ 4 ]

4 голосов
/ 08 октября 2009

Попробуйте что-то вроде этого (jQuery):

$('select[name^=options]').change(function () {
    $(this).children(':first').attr('selected', true);
});
3 голосов
/ 08 октября 2009

Вам придется (повторно) выбирать опцию каждый раз, когда выбор сделан. Я бы использовал обработчик onchange (). Может быть, лучше немного переработать пользовательский интерфейс, чтобы показать пользователям, что это не является обязательным. И убедитесь, что бэкэнд не зависит от того, выбран ли этот параметр, в случае, если js выключен или глючит.

2 голосов
/ 08 октября 2009

Как уже упоминалось, у вас есть (пере) выбирать опцию каждый раз, когда они меняют ее. Но еще одна важная вещь, на которую следует обратить внимание, заключается в том, что независимо от того, для чего используется эта форма (например, для обработки данных на стороне сервера), необходимо знать это правило. В противном случае все, что кому-то нужно сделать, - это зайти на ваш сайт, отключить javascript, а затем выбрать вариант, который вам не нужен.

2 голосов
/ 08 октября 2009

Использовать событие onclick или onchange:

select.onclick = function () {
    select.options[0].selected = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...