次のコードのいずれかを使用すると、select
要素は無効に見えますが、選択はサーバーに渡されません:使用するreadonly
を考えていますが、それで問題は解決します。どんな助けも大歓迎です。
$('#selectID').prop('disabled',true);
$('#selectID').prop('disabled','disabled');
$('#selectID').attr('disabled',true);
$('#selectID').attr('disabled','disabled');
select
を渡すことができるように、次のように設定し直しました。
$('#selectID').prop('disabled',false);
または
$('#selectID').attr('disabled',false);
リクエストを渡すとき。
この回答 を参照してください- HTMLフォーム読み取り専用SELECTタグ/入力
選択要素は無効のままにしておく必要がありますが、同じ名前と値を持つ別の非表示入力も追加する必要があります。
SELECTを再度有効にする場合は、onchangeイベントでその値を非表示の入力にコピーする必要があります。
this fiddle を参照して、無効な選択で選択された値をフォームに送信される非表示フィールドに抽出する方法を説明してください。
<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);
});
それが役立つことを願っています。
送信時に選択した値を無効にすることなく。
$('#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
代わりに.attr('readonly', 'readonly')
を.readonly()
に置き換えてください。それでおしまい。
たとえば、$(".someClass").attr('readonly', 'readonly');
から$(".someClass").readonly();
に変更します。