как установить элемент select как readonly ('disabled' не передает значение select на сервере)

когда я использовал следующий кодselect элемент do выглядит как отключенный, но select не проходит на сервере: Im думает о readonly для использования, но я не знаю или это решит проблему. Любая помощь очень ценится.

$('#selectID').prop('disabled',true);

$('#selectID').prop('disabled','disabled');

$('#selectID').attr('disabled',true);

$('#selectID').attr('disabled','disabled');

4 ответов


посмотреть ответ - HTML-форма только для чтения выберите tag / input

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

Если вы повторно настраиваете свой выбор, вы должны скопировать его значение в скрытый ввод в событие onchange.

посмотреть эта скрипка в demnstrate, как получить выбранное значение в отключены выбрать в скрытые поле, которое будет представлено в форме.

<select disabled="disabled" id="sel_test">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

<input type="hidden" id="hdn_test" />
<div id="output"></div>

$(function(){
    var select_val = $('#sel_test option:selected').val();
    $('#hdn_test').val(select_val);
    $('#output').text('Selected value is: ' + select_val);
});

надеюсь, что это поможет.


уметь передать select, Я просто установил его обратно в :

  $('#selectID').prop('disabled',false);

или

  $('#selectID').attr('disabled',false);

при передаче запроса.


без отключения выбранного значения при отправке..

$('#selectID option:not(:selected)').prop('disabled', true);

If you use Jquery version lesser than 1.7
$('#selectID option:not(:selected)').attr('disabled', true);

это работает для меня..


чтобы упростить вещи, вот плагин jQuery, который может достичь этой цели:https://github.com/haggen/readonly

  1. включить только для чтения.js в вашем проекте. (также нуждается в jQuery)
  2. заменить .attr('readonly', 'readonly') с .readonly() вместо. Вот и все.

    например, изменить с $(".someClass").attr('readonly', 'readonly'); к $(".someClass").readonly();.