Jquery更改选择值不起作用

时间:2016-08-29 17:59:32

标签: jquery html

我正在尝试使用jquery设置select选项,但它无法正常工作。它实际上设置了值,但文本没有更新。

我尝试使用.prop('selected',true).attr('selected',true).prop('selected','selected').val().val().change(),但nothig似乎有效

这是选择

<select class="input-field" id="equip_type" name="equip_type">
    <option value="" disabled selected>Tipo de Equipo </option> 
    <option value="0">equip_type_other</option>
    <option value="1">equip_type_desktop</option>
    <option value="2">equip_type_laptop</option>
    <option value="3">equip_type_tablet</option>
    <option value="4">equip_type_printer</option>
</select>

我要在ajax函数中设置选项,因此值来自函数。这就是我目前正在尝试的

$('#equip_type').val(data.equipType).change();

我使用与其他形式相同的方法,但只是这一个导致了这个问题。有什么我想念的吗?

4 个答案:

答案 0 :(得分:4)

这就够了:

$('#equip_type').val(data.equipType)  

但是,你有:

<option value="${equipType.value}">${equipType.toString()}</option>

这就是问题,.val()的参数必须是选项字段的值,而是使用文本值。

所以,你可以过滤:

        $('#equip_type option').filter(function() {
            return this.textContent == 'equip_type_tablet'
        }).prop('selected', true);

我的片段:

&#13;
&#13;
$(function () {
  $('#equip_type option').filter(function() {
    return this.textContent == 'equip_type_tablet'
  }).prop('selected', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<select class="input-field" id="equip_type" name="equip_type">
    <option value="" disabled selected>Tipo de Equipo </option>
    <option value="0">equip_type_other</option>
    <option value="1">equip_type_desktop</option>
    <option value="2">equip_type_laptop</option>
    <option value="3">equip_type_tablet</option>
    <option value="4">equip_type_printer</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$('#equip_type').val(data.equipType).trigger('change');

答案 2 :(得分:0)

$('#equip_type option[value="value"]'); 

在价值中你可以选择价值,它会起作用。

答案 3 :(得分:0)

$('option:selected', '#my_select').val();

所选子元素的第一个参数选择器,第二个 - 父元素。然后调用val()方法获取select的所选子项的值,并将my_select作为id。