j查询提取禁用选择选项值

jQuery fetch disabled select option value

本文关键字:选择 选项 查询 提取      更新时间:2023-09-26
<select id="test_me" name="test_me" disabled>
 <option value="">Please select</option>
 <option value="1">Test One</option>
 <option value="2" selected>Test Two</option>
 <option value="3">Test Three</option>
</select>
<input type="hidden" value="" name="test_hidden" id="test_hidden">

此处选项 Test Two 处于选中状态并禁用。下面的代码在启用下拉列表并更改值时获取选择值。

//pass value to hidden input
$('#test_me').change(function () {
    var id = $(this).val();
    $('input#test_hidden').val(id);
})

如何传递选定的选项值,即 2我的隐藏输入,当下拉列表被禁用并选择值时?

此问题在 http://bugs.jquery.com/ticket/13097 报告并标记为无法修复。 原因如下:

.val(( 中长期存在的逻辑确保我们不会在选择倍数中返回禁用的选项。为了保持一致性,此更改只是对现在的 select-one 应用相同的行为。

另一种方法是使用按索引选择目标选项的 selectedindex 属性:

$("#test_me option").eq($("#test_me").prop("selectedIndex")).val();

完整片段:

var id =  $("#test_me option").eq($("#test_me").prop("selectedIndex")).val();;
$('input#test_hidden').val(id);
<script type="text/javascript">
//pass value to hidden input
    $(document).ready(function(e) {
    var sel = $("#test_me").val();
    $("#test_hidden").val(sel);
    });
   </script>

<select id="test_me" name="test_me" disabled>
 <option value="">Please select</option>
 <option value="1">Test One</option>
 <option value="2" selected>Test Two</option>
 <option value="3">Test Three</option>
</select>
<input type="hidden" value="" name="test_hidden" id="test_hidden">