【问题标题】:Javascript: If you add a selection, don't allow that selection to be added again (no duplicates)Javascript:如果添加选择,则不允许再次添加该选择(无重复项)
【发布时间】:2013-08-26 23:42:23
【问题描述】:

我目前正在从事的机场项目有多种语言。

-目前您可以从下拉菜单中选择您想要的任何语言,它将出现在列表中。工作正常。也可以删除。

-目标:一旦将一种语言添加到列表中,您就不能再次添加它。例如,您可以点击法语的“添加语言”,然后添加任意次数。这适用于任何语言。

当前添加语言的js代码:

function addLanguage()
{
        var languages = $("#languages_dd").val();
        language_display = languages.split("-");
        alert(languages);

        var units = $("#units_dd").val();
        var unit_display = $("#units_dd :selected").text();

        $(".none_class").hide();
        $("#error_msg").html("");
        $("#summary").append("<li><input type='radio' name='language_item'> <span class='route_summary_field_big'>"+language_display[0]+"</span>"+unit_display+"<input type='hidden' name='languages[]' value='"+languages+"'><input type='hidden' name='units[]' value='"+units+"'></li>");
}

我对javascript不太熟悉,一直在网上搜索。我知道这将是一个有条件的,类似于:

if($("#languages_dd :selected")
{
//do something;
}
else if
//do something else;
}

感谢任何意见,以引导我朝着正确的方向前进。

【问题讨论】:

  • HTML 标记在哪里?还是 jsFiddle?
  • stackoverflow.com/questions/784012/… - 将您的语言存储在一个数组中,并检查这种语言是否已经在数组中。
  • 如果您不想重复,请在添加后将其从选择中删除。这样,您的用户就无法再次添加它。如果您从列表中删除它,只需将选项添加回选择列表中。

标签: php javascript conditional selection


【解决方案1】:

您可以将选定的语言保存在一个数组中。然后在追加到 html 之前,检查该值是否已经存在:

var selected_lang = new Array();
function addLanguage() {
//your code here..
    if (!$.inArray(language_display, selected_lang)) {
        selected_lang.push(language_display)
        // rest of your code to append html
    }
}

【讨论】:

  • 感谢您的回复。我不认为这是一个坏主意,但一位朋友告诉我,因为这些语言附加到机场路线(即,您可以为每条不同的路线使用不同/相同的语言),在这种情况下,空数组不是最好的。
【解决方案2】:

这是我想出的解决方案(欢迎提出建设性的批评):

function addLanguage()
{
        var languages = $("#languages_dd").val();
        language_display = languages.split("-");
        var units = $("#units_dd").val();
        var unit_display = $("#units_dd :selected").text();
        $(".none_class").hide();
        var shouldAdd = "YES";
        $("#summary li").each(function(){
            var matches = 0;
            $(this).find('input:hidden').each(function(){
                var stringVal= $(this).val();
                console.log(stringVal);
                if(stringVal.indexOf(languages) != -1){
                    matches++;
                }
                if(stringVal.indexOf(units) != -1){
                    matches++;
                }
            });
            if(matches == 2){
                shouldAdd = "NO";
            }
        });
        if(shouldAdd == "YES") {
            $("#summary").append("<li><input type='radio' name='language_item'> <span class='route_summary_field_big'>"+language_display[0]+"</span>"+unit_display+"<input type='hidden' name='languages[]' value='"+languages+"'><input type='hidden' name='units[]' value='"+units+"'></li>");
        }
        $("#error_msg").html("");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多