默认选择不显示在下拉列表中

时间:2017-06-02 09:12:29

标签: javascript php jquery html ajax

这是来自php文件的动态加载下拉框。我已经设置了一个默认选项Select Language但是一旦加载了ajax元素,这就不显示了。

即使加载ajax项目后,如何将选择语言设为默认语言?

<select id="name">
  <option style="display:none;" selected>Select language</option>
</select>

<?php if (isset($_GET['place']) && $_GET['place'] != '') { ?>

    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
        $.ajax({
            type: "POST",
            data: {place: '<?= $_GET["place"] ?>'},
            url: 'listplace.php',
            dataType: 'json',
            success: function (json) {
                if (json.option.length) {
                    var $el = $("#name"); 
                    $el.empty(); // remove old options
                    for (var i = 0; i < json.option.length; i++) {
                        $el.append($('<option>',
                            {
                                value: json.option[i],
                                text: json.option[i]
                            }));
                    }
                }else {
                    alert('No data found!');
                }
            }
        });
    </script>

2 个答案:

答案 0 :(得分:2)

$el.empty()语句会删除select中的所有选项。你不应该删除第一个选项。

为此,请使用not方法和:first 伪类以保留默认选项。

$el.find('option').not(':first').remove();

答案 1 :(得分:1)

因为您需要删除旧选项并添加新选项而不会丢失默认的“选择语言”文本,您可以这样做:

{{1}}