如何为依赖的 select 列表设置默认值 values/placeholders?

How to set default values/placeholders for depended select lists?

我有四个依赖的 select 列表,我想给所有 select 列表一个默认的 value/placeholder,如下所示:select ...。问题是,当我尝试这样做时:<option value=""> Select ... </option> 它不起作用。因为当我更改第一个 select 列表时,其他 select 列表会因为依赖关系而自动更改。

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

    $("#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;
}

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

如果你能分享确切的 fiddle 就太好了,但是看看你的 javascript,我发现了一个问题。

而不是调用:

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

我觉得你应该打电话给

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

触发变化事件

此外,最好有一个值为

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

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

希望对您有所帮助。