0

我的网页上有几个小时的下拉菜单。后端将值作为 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>
4

5 回答 5

3
$(function(){
  var select = $("#TimeHours");
  select.val(select.attr("data-value"));
});

Using.attr()返回一个字符串,而不是.data()将值转换为类型。

于 2012-10-01T21:18:38.550 回答
2

使用jquery.val函数..

$('#TimeHours').val(function () {
    return $(this).data('value')['TimeHours'];
});

假设data-value='{"TimeHours": "12"}'

演示:http: //jsfiddle.net/ts594/

于 2012-10-01T21:21:01.603 回答
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>
于 2012-10-01T21:19:38.950 回答
0

你有没有尝试过?

data-value="{{praseInt(this.TimeHours)}}
于 2012-10-01T21:18:52.973 回答
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");
    }
})();
于 2012-10-01T21:19:01.793 回答