jQuery fetch禁用选择选项值

时间:2015-03-26 12:23:18

标签: javascript jquery

<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)传递给我的隐藏输入?

2 个答案:

答案 0 :(得分:1)

此问题在http://bugs.jquery.com/ticket/13097报告,并标记为不会修复。原因:

  

.val()中的长期逻辑确保我们不会在select-multiple中返回禁用的选项。对于一致性,此更改仅对select-one应用相同的行为。

替代方法是使用select的indexindex属性作为索引选项:

$("#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);

答案 1 :(得分:0)

<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">