2016-04-07 31 views
1

我正在使用jQuery v1.10.2。我需要更改选择下拉列表的值。我为移动和桌面视图使用相同的js文件(都有不同的html文件)。这些都是我试图改变下拉的价值的两种办法:jQuery v 1.1x更改选择选项的值

$('#cType').val('visa'); 
$("#cType").prop("selectedIndex", 1); 

它工作正常的台式机和值改变,但是对于移动它不工作。对于移动以及台式这是我使用的HTML代码:

<div class="cTypeContainer"> 
    <label for="cType"><span class="red">&#42;</span>Card Type</label> 
     <select name="cType" class="ui-nodisc-icon ui-alt-icon" id="cType"> 
       <option>Select</option> 
       <option value="visa">Visa</option> 
       <option value="master">Master Card</option> 
       <option value="discover">Discover</option> 
       <option value="amExpress">American Express</option> 
     </select> 
</div> 

我不知道为什么它不是为移动工作。我使用的是jQuery mobile,你认为它可能会干扰它的工作吗?

+0

它在移动Chrome中对我来说工作正常(https://jsfiddle.net/q7rhxnhn/2/)。它可能是您正在使用的特定移动浏览器或其他有冲突的代码吗? – Michael

+0

我观察到的一件事是,如果不包括'jquery.mobile.custom.structure.css'文件,它开始工作正常。我不知道为什么这个CSS文件导致JS问题。这是一个非常长的jQuery创建的文件,所以对于我来说,确定哪些行导致此代码中断是非常困难的。 – anwartheravian

+0

我进一步调试它,发现值正在改变,它只是jQuery手机设置的样式,只有第一个值显示在可见区域。 – anwartheravian

回答

0

我改变了JS代码,这和它的工作就像一个魅力:

$('#cType').val('visa').selectmenu('refresh'); 

它所做的基本上是刷新的造型,以显示动态选择的值。