如何为依赖的选择列表设置默认值/占位符?

时间:2016-06-11 13:03:50

标签: javascript jquery placeholder selectlist

我有四个依赖的选择列表,我想给所有选择列表一个默认值/占位符,如下所示:select ...。问题在于,当我尝试这样做时:<option value=""> Select ... </option>它不起作用。因为当我更改第一个选择列表时,由于依赖性,其他选择列表会自动更改。

这就是我填写依赖选择列表的方式:

    $("#slctTable").change(function()
    {
        $.getJSON("dropdown_code/get_fields.php?table=" + $(this).val(), success = function(data)
        {
                optionsFields= "";
        for(var i = 0; i < data.length; i++)
            {
                optionsFields += "<option value='" + data[i]['field_name'] + "'>" + data[i]['field_alias'] + "</option>";
            }
        $("#slctField").html("");
        $("#slctField").append(optionsFields);
        $("#slctField").change();
        })
    });   
    });

使用此功能我将optionsFields放入数组:

function allValues(el) {
  var arr = $('option', el).map(function(i, v) {
    return this.value;
  }).get();

  return arr;
}

2 个答案:

答案 0 :(得分:1)

而不是optionsFields= "";使用optionsFields= "<option value='0'> Select... </option>"。它无法正常工作,因为您可能在HTML中设置默认值并在更改功能中覆盖它。

答案 1 :(得分:0)

如果你可以分享完全的小提琴,那将会很棒,但是看看你的javascript,我可以看到一个问题。

而不是打电话:

 $("#slctTable").change();

我认为你应该致电

 $("#slctTable").trigger("change");

触发更改事件

此外,最好使用具有值

的默认字符串
<option value="">Select...</option>

除此之外,如果您可以创建一个可以从提供的数组创建选项字符串的通用函数,并且还可以在该字符串中附加默认选项,那将会很棒。在这种情况下,它将减少错误的机会,就像我们在这里的方式一样。

希望有所帮助。