你怎么能把select =" select"动态?jQuery的

时间:2016-01-13 11:00:40

标签: javascript jquery html

我有这个样本:

https://msdn.microsoft.com/en-us/library/windows/desktop/dd756757(v=vs.85).aspx#sharing_render_target_resources

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

依旧......

你能帮我解决这个问题吗?

提前致谢!

4 个答案:

答案 0 :(得分:0)

首先,我已经评论过,您不需要设置属性selected并触发change功能。

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

这应该足够了。

其次,如果你做了这个改变,它仍然无法正常工作。 w ^ 的为什么:吗

变量值:

var stateSelectValue = "Mastercard";

不等于选项的value

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

<强> Updated Codepen

答案 1 :(得分:0)

你只是错误的一个错误,你选择的价值是资本,即#34; Mastercard&#34;在选项值中,它是&#34;万事达卡&#34;。但是以简单的方式做下面就足够了,没有触发更改事件。

&#13;
&#13;
 var stateSelectValue = "mastercard";
  
  
    $("#card_type").val(stateSelectValue)
&#13;
<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>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这个问题已经问了一些。请参考以下链接:

JQuery setting the selected attribute on a select list

答案 3 :(得分:0)

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