Javascript:如果你添加了一个选择,不要't不允许再次添加该选择(不允许重复)
Javascript: If you add a selection, don't allow that selection to be added again (no duplicates)
我目前有多种语言用于我正在进行的机场项目。
-目前,您可以从下拉菜单中选择您想要的任何语言,它将出现在列表中。工作良好。也可以删除它们。
-目标:一旦一种语言被添加到列表中,你就不能再添加了。例如,您可以点击法语的"添加语言",并根据需要多次添加。这适用于任何语言。
当前用于添加语言的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之前,检查该值是否已经存在:
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
}
}
这是我提出的解决方案(可以提出建设性的批评):
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("");
}
相关文章:
- Don'不允许将焦点集中在自动完成的选择上
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- js文件未加载js控制台say's”;不允许加载本地资源”;
- Jquery不允许来自多个选择列表的相同值
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- 不允许在文本框中使用小数
- 元素不会添加到Javascript数组中
- TinyMCE全屏不允许出现模式窗口
- 不允许在字段中输入不需要的字符
- 访问控制允许标头不允许X-Requested-Wise
- Chromium内联样式不允许正确的视图
- JQuery代码语法问题?(“不允许内联控制结构”)
- 正则表达式,不允许在javascript中使用负数和小数以及零
- jQuery appendTo 替换元素而不是添加元素,如果正在添加的元素预先存在于列表中
- 不允许输入或聚焦的输入类型文本
- Javascript:如果你添加了一个选择,不要't不允许再次添加该选择(不允许重复)
- 显示页面的注释,但不允许添加新的注释
- 如果ID已经在列表中,则不允许添加产品
- 用文档添加脚本.Writeln不允许在开发人员工具中调试
- 删除backbone.js视图不允许我添加另一个视图