我使用以下ajax / jquery / php将数据拉入选择框。在此之后,如果用户对之前的选择框进行了任何更改,我会使用它下面的代码重置选择下拉菜单。发生的奇怪事情是,如果用户更改#customer下拉列表,它会重置所有数量框以及所有的线性计算以及库存下拉列表,但将相同的函数复制并粘贴到#vehicle下拉列表中因为它清除了数量文本框,清除了线条计算,但是留下了股票下拉选择菜单,而不是将它们重置为默认值,这与#customer下拉列表中的WORKS完全相同,以重置更改的所有内容。
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$('#customer').on('change', function () {
$('#vehicle').html("<option value=''>Select</option>"); // add this on each call then add the options when data receives from the request
$.getJSON('select.php', {
customerId: $(this).val()
}, function (data) {
var options = '';
for (var x = 0; x < data.length; x++) {
options += '<option value="' + data[x]['id'] + '">' + data[x]['reg'] + ' - ' + data[x]['make'] + ' - ' + data[x]['model'] + '</option>';
}
$('#vehicle').html(options);
$("select").select2();
});
});
$('#customer').on('change', function () {
$('#qty1').val('');
$('#linetotal1').text('');
$("#stock1").val($("#stock1 option:first").val());
$('#qty2').val('');
$('#linetotal2').text('');
$("#stock2").val($("#stock2 option:first").val());
$('#qty3').val('');
$('#linetotal3').text('');
$("#stock3").val($("#stock3 option:first").val());
$('#qty4').val('');
$('#linetotal4').text('');
$("#stock4").val($("#stock4 option:first").val());
$('#qty5').val('');
$('#linetotal5').text('');
$("#stock5").val($("#stock5 option:first").val());
$('#qty6').val('');
$('#linetotal6').text('');
$("#stock6").val($("#stock6 option:first").val());
});
$('#vehicle').on('change', function () {
$('#qty1').val('');
$('#linetotal1').text('');
$("#stock1").val($("#stock1 option:first").val());
$('#qty2').val('');
$('#linetotal2').text('');
$("#stock2").val($("#stock2 option:first").val());
$('#qty3').val('');
$('#linetotal3').text('');
$("#stock3").val($("#stock3 option:first").val());
$('#qty4').val('');
$('#linetotal4').text('');
$("#stock4").val($("#stock4 option:first").val());
$('#qty5').val('');
$('#linetotal5').text('');
$("#stock5").val($("#stock5 option:first").val());
$('#qty6').val('');
$('#linetotal6').text('');
$("#stock6").val($("#stock6 option:first").val());
});
});
</script>
所以,如果我更改#vehicle选择它会清除数量和行总数但是会留下库存的情况,如果我更改#customer的顶部选择它会清除选择就好了,使用相同的函数.... ..
所有选择都是使用JQUERY PLUGIN按方式调用SELECT2。
答案 0 :(得分:0)
我假设#vechicle是一个选择标记。
$('#vehicle').html(options);
在这一行你将它变成选项标签,使用firebug仔细检查HTML。
如果您想在选择标记上添加值
,可以执行以下操作$('#vehicle').append(options);