【发布时间】:2016-07-31 15:07:01
【问题描述】:
当用户单击“+”按钮时,应添加一行,其中包含下拉列表和输入字段。我想将该输入字段名称作为每行的下拉值。
如果我在第一个下拉列表中选择“facebook”,它不应显示在第二个下拉列表中。简单地选择值不应显示在下一个下拉列表中。我做了那部分。但我的问题是,如果我在第二个下拉列表中选择“Google”,在第三个下拉列表中选择“Yahoo”。如果我再次单击第一个或第二个下拉菜单,它不应该再次显示“雅虎”。
请在下方找到代码所在的链接并修复它。
http://jsfiddle.net/mhmdsohail/v9uem13u/5/
$(document.body).on('click', '.add-more', function (e) {
var lastSelect = $("select").last().find('option');
var toAppend = '';
if (lastSelect.length > 1) {
toAppend += '<select name="select[]">';
$.each(lastSelect, function (i, v) {
if ($(this).text() !== $("select:last option:selected").text())
toAppend += '<option value="' + $(this).val() + '">' + $(this).text() + '</option>';
});
toAppend += '</select>';
toAppend += '<input type="text" name=""><br>';
}
$(".append-select").append(toAppend);
});
【问题讨论】:
-
在此处发布您的 html 代码
-
@MayankPandey 请检查jsfiddle.net/mhmdsohail/v9uem13u/5
-
您应该在代码中包含选择更改处理。这可以帮助您减少工作量。我还建议包含一个数组来指定可能的选项.. 这样您就不必在选择更改期间解析 DOM,例如var options = [{name: "Facebook", inUse=true}, {...}, ...]
-
理解这一点很棘手。您能给我们一些示例用例吗? 1- 用户在下拉列表中选择一个项目并按 +。添加了一个不包括初始选定项目的新行。第一个下拉列表会发生什么?您是否还需要删除所选项目? 2-“但是我的问题是,如果我在第二个下拉列表中选择“Google”,在第三个下拉列表中选择“Yahoo”。如果我再次单击第一个或第二个下拉列表,它不应该再次显示“Yahoo””它不应该在哪里显示雅虎?在之前的下拉菜单中?
-
@GokhanDilek 我需要输出如下图acmsohail.com/error.jpg 最初它在第一个下拉列表中显示所有值(Facebook、Google、Yahoo、Whatsapp、Youtube)。您在第一个下拉列表中选择“Facebook”。并单击“+”添加一行。在第二个下拉菜单中,“Facebook”没有显示它工作正常。同样,如果您在第二个下拉列表中选择 Google,则“facebook 和 google”不会显示在第三个下拉列表中。但是,如果您返回并选择第一个下拉菜单,则问题再次出现,它会一直显示“google”。无论您在下拉列表中选择什么,它都不应显示在 otherdropdown
标签: javascript php jquery html css