Jquery用于重置下拉选择菜单,其中一个使用相同的代码而不是另一个

时间:2013-07-02 08:15:05

标签: php jquery ajax function

我使用以下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>

enter image description here

所以,如果我更改#vehicle选择它会清除数量和行总数但是会留下库存的情况,如果我更改#customer的顶部选择它会清除选择就好了,使用相同的函数.... ..

enter image description here

所有选择都是使用JQUERY PLUGIN按方式调用SELECT2。

1 个答案:

答案 0 :(得分:0)

我假设#vechicle是一个选择标记。

$('#vehicle').html(options);

在这一行你将它变成选项标签,使用firebug仔细检查HTML。

如果您想在选择标记上添加值

,可以执行以下操作
$('#vehicle').append(options);