这非常简单,以前也被问过很多次,但我不知道该由谁来做。我有两个下拉列表,最后一个是从第一个下拉列表中选择的。这是可行的,但现在我想为第二个下拉列表进行预选,因为响应中只有一个元素。
功能:
$( "select[name='r53b']" ).change(function () {
var r53bID = $(this).val();
if(r53bID) {
$.ajax({
url: "/overfladeajax.php",
dataType: 'Json',
data: {'id':r53bID},
success: function(data) {
$('select[name="r53c"]').empty();
$('select[name="r53c"]').append('<option value="">Vælg Lagtykkelse</option>');
$.each(data, function(key, value) {
$('select[name="r53c"]').append('<option value="'+ key +'">'+ value +'</option>');
});
}
});
}
});
2种回复:
{"7":"2 x 100 u03bcm HS 150 (totalt 200 u03bcm tu00f8rfilm)","8":"1 x 40 u03bcm zink primer + 1 x 120 u03bcm HS 150 (totalt 160 u03bcm tu00f8rfilm)"}
或
{"2":"1 x 80 u03bcm HS 150"}
我如何进行追加,这样它也会选择只有一个可用的选项?
您可以使用Object.keys(yourjson).length
来获取json对象中键的长度,然后如果计数为1
,则将selected
添加到该选项中。
演示代码 :
var data = {
"2":"1 x 80 u03bcm HS 150"
}
var count = Object.keys(data).length//get key length
console.log("length is "+count)
$('select[name="r53c"]').append('<option value="">Vælg Lagtykkelse</option>');
$.each(data, function(key, value) {
//if length is 1
if (count == 1) {
$('select[name="r53c"]').append('<option selected value="' + key + '">' + value + '</option>');
} else {
$('select[name="r53c"]').append('<option value="' + key + '">' + value + '</option>');
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="r53c">
</select>