下拉列表不会仅在移动设备中显示所选值

时间:2014-04-03 10:21:52

标签: jquery jquery-mobile

我有一个select menuoptions不同。我想根据当前时间动态选择option。 因为我正在使用以下代码

var currentdate = new Date();
var h = currentdate.getHours();
var m = currentdate.getMinutes();
if(m >= 1 && m <= 15)
{
    m = '00';
}
else if(m >= 16 && m <=44)
{
    m = '30';
}
else if (m >= 45)
{
    h++;
    m = '00';
}
if(h < 12)
{
    var time = h+":"+m+" AM";
    $("#kill-time option").each(function() {
        if($(this).text() === time) {
            $(this).attr('selected', 'selected');
        }                   
    });
    $('#kill-time').selectmenu('refresh',true);
}
else
{
    h = h - 12;
    if(h < 10)h="0"+h;
    var time = h+":"+m+" PM";
    $("#kill-time option").each(function() {
        if($(this).text() === time) {
            $(this).attr('selected', 'selected');
        }                   
    });
    $('#kill-time').selectmenu('refresh',true);
}

它会更新值并显示正确的值(在桌面浏览器中),在移动浏览器中它会显示如下

enter image description here

我也创建了JSFiddle并检查了移动浏览器,它有同样的问题

(我想在text的基础上更改,而不是使用values

1 个答案:

答案 0 :(得分:1)

认为我把它排序了。我在你的代码上改了两件事。一个大约12的时间的HTML,写作pM而不是PM。

此外,你的JS将时间从24小时12转换为0,实际上我们说中午12点,然后1点1点,所以我只是添加了另一个条件。

if(h!==12){
    h = h - 12;
}

我在Google Nexus S,iPhone 5和Windows Phone上使用Google Dev Tools Emulation对此进行了测试,似乎工作正常。


来自docs

  

selectedIndex,tagName,nodeName,nodeType,ownerDocument,   defaultChecked和defaultSelected应该被检索并设置   .prop()方法。在jQuery 1.6之前,这些属性是   可以使用.attr()方法检索,但这不在范围内   attr。这些没有相应的属性,只是   属性。

然后,您必须更改任何上述任何元素的attr()并将其更改为

$(本).prop(&#39;选择&#39;,TRUE);

<强> JSFiddle