2016-04-07 7 views
1

Ich verwende jQuery v1.10.2. Ich muss den Wert eines Auswahl-Dropdowns ändern. Ich benutze die gleiche js-Datei für beide mobile und Desktop-Ansicht (beide haben unterschiedliche HTML-Dateien). Dies sind die beiden Ansätze, die ich habe versucht, den Wert der Drop-down zu ändern:jQuery v 1.1x Wert der Auswahloption ändern

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

es funktioniert gut für den Desktop und ändert den Wert, aber für mobile funktioniert es nicht. sowie Desktop für mobile ist dies der HTML-Code Ich verwende:

<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> 

Ich weiß nicht, warum es nicht für das mobile Arbeiten. Ich benutze jQuery mobile, denkst du könnte es möglicherweise mit seiner Arbeit interferieren?

+0

Es funktioniert gut für mich in mobilen Chrome (https://jsfiddle.net/q7rhxnhn/2/). Könnte es sich um den bestimmten mobilen Browser, den Sie verwenden, oder einen anderen in Konflikt stehenden Code handeln? – Michael

+0

Eine Sache, die ich beobachtet habe, ist, dass, wenn sie nicht die 'jquery.mobile.custom.structure.css' Datei enthält, es gut funktioniert. Ich weiß nicht, warum diese CSS-Datei ein JS-Problem verursacht. Es ist eine sehr lange jQuery erstellte Datei, daher ist es für mich sehr schwierig, genau zu bestimmen, welche Zeile diesen Code zum Brechen bringt. – anwartheravian

+0

Ich debuggte weiter, und fand heraus, der Wert wird geändert, nur jQuery mobile setzt die Stile so, dass nur der erste Wert im sichtbaren Bereich angezeigt wird. – anwartheravian

Antwort

0

änderte ich den JS-Code auf diese und es wie ein Charme:

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

Alles, was es tut, ist erfrischt im Grunde das Styling der dynamisch ausgewählte Wert anzuzeigen.

Verwandte Themen