我正在尝试使用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();
我使用与其他形式相同的方法,但只是这一个导致了这个问题。有什么我想念的吗?
答案 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);
我的片段:
$(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;
答案 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。