我有这个样本:
代码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>
依旧......
你能帮我解决这个问题吗?
提前致谢!
答案 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;。但是以简单的方式做下面就足够了,没有触发更改事件。
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;
答案 2 :(得分:0)
这个问题已经问了一些。请参考以下链接:
答案 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
});