2016-01-13 51 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 
});