2016-04-07 30 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'); 

它所做的基本上是刷新的造型,以顯示動態選擇的值。