你怎么能让我选择=“;选择“;动态Jquery

How you can I put selected = "selected" dynamic?Jquery

本文关键字:选择 动态 Jquery 怎么能      更新时间:2023-09-26

我有这个样本:

链路

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

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

等等…

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

提前感谢!

首先,正如我已经评论过的,您不需要设置属性selected和触发change函数。

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

这应该足够了。

第二,如果你做了这个改变,它仍然不会起作用。W为什么?:

可变值:

var stateSelectValue = "Mastercard";

不等于选项的value

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

更新的Codepen

你都很好,只是一个拼写错误,你选择的值是大写的,即"万事达卡",而在选项值中,它是"万事达"。但在没有触发变更事件的情况下,简单地做以下操作就足够了。

 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>

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

JQuery在选择列表上设置所选属性

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