提问者:小点点

如何使动态选择中的第一个选项为空白?


如果以前有人问过这个问题,我很抱歉,但是我找不到一个适合我的特定代码的答案。

我有一个动态的客户下拉列表。 当选择客户时,它将填充客户联系人。 一切都很顺利。 但是,它将第一个选项与来自数据库的第一个值放在一起,并且我希望它是空白的,以迫使人们选择正确的联系人。

下面是我的代码:

 $('select[name="customer"]').on('change', function(){

    var customerId = $(this).val();

    if(customerId) {
        $.ajax({
            url: '/customer/contacts/get/'+customerId,
            type:"GET",
            dataType:"json",
            beforeSend: function(){
                $('#loader').css("visibility", "visible");
            },

            success:function(data) {

                $('select[name="customer_contact"]').empty();

                $.each(data, function(key, value){

                    $('select[name="customer_contact"]').append('<option value="'+ key +'">' + value + '</option>');

                });
            },
            complete: function(){
                $('#loader').css("visibility", "hidden");
            }
        });
    } else {
        $('select[name="customer_contact"]').empty();
    }

});

下面是客户填充的选择:

            <select
                            name="customer_contact"
                            class="form-control shadow">
                            <option>

                            </option>

                        </select>

共2个答案

匿名用户

我认为在从数据库中追加数据之前,基本上可以添加一个空白值或“选择联系人”选项。 因为我现在无法重新创建这个片段。 我建议您尝试添加以下代码

$('select[name="customer_contact"]').append('<option value="Choose">Choose Contact</option>');

因此您的完整代码如下所示

 $('select[name="customer"]').on('change', function(){

    var customerId = $(this).val();

    if(customerId) {
        $.ajax({
            url: '/customer/contacts/get/'+customerId,
            type:"GET",
            dataType:"json",
            beforeSend: function(){
                $('#loader').css("visibility", "visible");
            },

            success:function(data) {

                $('select[name="customer_contact"]').empty();

$('select[name="customer_contact"]').append('<option value="Choose">Choose Contact</option>');

                $.each(data, function(key, value){

                    $('select[name="customer_contact"]').append('<option value="'+ key +'">' + value + '</option>');

                });
            },
            complete: function(){
                $('#loader').css("visibility", "hidden");
            }
        });
    } else {
        $('select[name="customer_contact"]').empty();
    }

});

匿名用户

您的代码只是将新选项追加到现有的select中,因此如果您先将空白选项放在那里,它仍然可用:

<select
    name="customer_contact"
    class="form-control shadow">

    <option value="" selected>Please select...</option>

</select>