JQuery Mobile自定义下拉列表问题

时间:2016-04-06 17:41:32

标签: javascript jquery jquery-mobile

我第一次选择下拉第一个值时遇到问题。当下拉选项滑动到选择时,默认情况下将选择第一个值,其中我无法选择第一个值。我正在使用JQuery移动框架,我正在编写自定义JS来更改下拉列表。我只需使用自定义JS处理此下拉列表,并且由于我的项目存在其他问题,无法使下拉列表与此自定义逻辑一起使用。

这里的首要价值是指美国'从下拉列表

非常感谢这个问题的解决方案。提前谢谢。

HTML:

<select id="drpDwn">
    <option value="" disabled="disabled">select</option>
    <option value="US">US</option>
    <option value="AU">AU</option>
    <option value="NZ">NZ</option>
</select>

JS:

$(document).on('change', '#drpDwn', function () {
var index = $(this)[0].selectedIndex;
$(this).attr('selectedIndex', index);
$(this).find('option').removeAttr('selected');
$(this).find('option').eq(index).attr('selected', 'selected');
$(this).siblings('span').html($(this).find('option').eq(index).text());
});

http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css

1 个答案:

答案 0 :(得分:0)

查看此JSFiddle

差异制造者正在修改:

$(this).find('option').removeAttr('selected');

分为:

$(this).find('option:not(:selected)').removeAttr('selected');

当&#39;改变&#39;触发后,所选属性将添加到新选项中,因此即使是新选项,您也会将其从所有内容中删除。这就是选项从未改变的原因。

使用:not(:selected)会派上用场,因为它只会删除当前所选选项中的属性。