Заблокируйте элемент выбора HTML, позвольте значению быть пересланным, отправляют

У меня есть избранное поле (для клиентского поля) на сложном бланке заявки, когда пользователь начинает добавлять строки к порядку, им нельзя позволить изменить клиентское поле выбора (если все строки не удалены).

Моя непосредственная мысль была то, что я мог использовать отключенный атрибут, но когда поле отключено, выбранное значение больше не передается цели.

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

Я предпочел бы не включать это / все элементы, когда кнопка отправки поражена.

Как я могу заблокировать вход при поддержании выбранной опции и передаче того значения целевому сценарию? Я предпочел бы решение не-JavaScript, если это возможно, но в случае необходимости мы запускаем jQuery 1.4.2 так, чтобы мог бы использоваться.

Править

Я попытался использовать атрибут "только для чтения" с небольшим успехом, вот код jQuery, который я использую:

$('.abc').each(function(element) {
    $(this).attr('readonly','readonly');
});

При осмотре элемента с Firebug был установлен атрибут "только для чтения", но я могу все еще изменить значение в избранном поле?!

5
задан Ben Everard 28 April 2010 в 12:23
поделиться

3 ответа

Это работает:

$('.abc :not(:selected)').attr('disabled','disabled');

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

6
ответ дан 18 December 2019 в 13:12
поделиться

Добавьте скрытое поле в форму, и onsubmit возьмет значение из выбора и поместит его в значение скрытого поля

Согласно спецификации HTML, только для чтения не поддерживается тегом select

3
ответ дан 18 December 2019 в 13:12
поделиться

«select» не имеет атрибута только для чтения. У него есть только отключенный атрибут.

http://www.w3schools.com/TAGS/att_select_disabled.asp

Итак, лучший вариант:

$('.abc').each(function(element) {
    $(this).attr('disabled','disabled');
});

HTH

1
ответ дан 18 December 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: