我的网页上有几个小时的下拉列表。后端将值作为int返回。 例如:“TimeHours”:12。
以下代码未将值预设为12.但是,如果我将BE值从12更改为“12”,则可以正常工作。
我应该如何让它发挥作用?我尝试更改<option value="1">1 </option> to <option value=1>1 </option>
,但这也不起作用。
<li class="align" >
<select id="TimeHours" name="TimeHours"
style="width:60px" data-value="{{this.TimeHours}}">
<option value="1">1 </option>
<option value="2">2 </option>
<option value="3">3 </option>
<option value="4">4 </option>
<option value="5">5 </option>
<option value="6">6 </option>
<option value="7">7 </option>
<option value="8">8 </option>
<option value="9">9 </option>
<option value="10">10 </option>
<option value="11">11 </option>
<option value="12">12 </option>
</select></li>
答案 0 :(得分:3)
$(function(){
var select = $("#TimeHours");
select.val(select.attr("data-value"));
});
使用.attr()
返回一个字符串,而不是.data()
将值转换为类型。
答案 1 :(得分:2)
使用jquery .val
函数..
$('#TimeHours').val(function () {
return $(this).data('value')['TimeHours'];
});
假设data-value='{"TimeHours": "12"}'
答案 2 :(得分:1)
以这种方式标记您要选择的那个:
<option value="2">2 </option>
<option value="3">3 </option>
<option value="4">4 </option>
<option value="5">5 </option>
...
<option selected value="12">12 </option>
答案 3 :(得分:0)
data-value="{{praseInt(this.TimeHours)}}
答案 4 :(得分:0)
除了将selected
添加到正确的<option>
标记之外,无法预先选择一个选项。
这就是我有这个代码的原因:
(function() {
// enable default attribute on <select>
var sels = document.querySelectorAll("select[data-value]"), l = sels.length, i,
opts, m, j;
for( i=l-1; i>=0; i--) {
opts = sels[i].getElementsByTagName('option'); m = opts.length;
for( j=0; j<m; j++) {
if( opts[j].value == sels[i].getAttribute("data-value")) {
sels[i].selectedIndex = j;
break;
}
}
sels[i].removeAttribute("data-value");
}
})();