2016-01-13 55 views
0

我有這樣的例子:?你怎麼能我把選擇= 「選擇」 動態Jquery的

link

代碼HTML:

<select name="card_type" id="card_type" class="card-sel com-c select-full"> 
     <option value="visa">Visa</option> 
     <option value="mastercard">Mastercard</option> 
     <option value="discovery">Discovery</option> 
     <option value="maestro">Maestro</option> 
</select> 

CODE JS:

$(document).ready(function() { 
    var stateSelectValue = "Mastercard"; //this value in my site returns a dynamic type of card 
    console.log("primul log" + stateSelectValue); 

    if(stateSelectValue) 
    { 
    console.log("al doilea log" + stateSelectValue); $("#card_type").val(stateSelectValue).attr("selected","selected").trigger("change"); 
     console.log("al treilea log" + stateSelectValue); 
    } 
     $(".com-c").change(function() { 
      var data= $(this).val(); 
      console.log(data); 
     }); 
    }); 

也許這個例子明白他們想做什麼。

基本上當他們在變量stateSelectValue中收到一個值來查看該列表中是否有值並進行選擇時。

例如IF:

var stateSelectValue = "Mastercard"; 

然後

<option value="mastercard" selected="selected">Mastercard</option> 

等等...

你能幫我解決這個問題嗎?

在此先感謝!

+3

'$( 「#CARD_TYPE」)VAL(stateSelectValue)'這應該是足夠的。你不必設置'selected'屬性和火災變化事件。 – Rajesh

+0

在我的例子中,如果你看起來是空的...不顯示第一個值 – Marius

+0

@abshishekkanoijia你可以編輯我的例子嗎?我試圖做到這一點,但不工作 – Marius

回答

0

首先我已經評論過了,你不需要設置屬性selected並觸發change函數。

$("#card_type").val(stateSelectValue) 

這應該夠了。

其次,如果你做了這個改變,仍然不行。 w^ 爲什麼?:

變量值:

var stateSelectValue = "Mastercard"; 

不等於期權value

<option value="mastercard">Mastercard</option> 

Updated Codepen

0

你都好只是一個錯字錯,你選擇的值是在大寫,即「萬事達卡」,其中選項值爲「萬事達卡」。但以簡單的方式做下面的事情就足夠了,沒有觸發器變化事件。

var stateSelectValue = "mastercard"; 
 
    
 
    
 
    $("#card_type").val(stateSelectValue)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
<select name="card_type" id="card_type" class="card-sel com-c select-full"> 
 
     <option value="visa">Visa</option> 
 
     <option value="mastercard">Mastercard</option> 
 
     <option value="discovery">Discovery</option> 
 
     <option value="maestro">Maestro</option> 
 
</select>

0
$(document).ready(function() { 
    $('#card_type').val("mastercard"); // Select by value 
    text1 = "Maestro"; 
    $("#card_type option:contains(" + text1 + ")").attr('selected', 'selected'); // select by text 
});