Javascript / jQuery:确保添加到pulldown的唯一选项

时间:2013-07-31 22:34:43

标签: javascript jquery drop-down-menu

我有一个HTML下拉菜单以及一个允许用户向菜单添加新选项的文本元素。我想确保添加的每个选项都是唯一的。以下两行是我认为有效的第一个选项(选项值=所有选项的innHTML)。我想知道是否有更优雅的解决方案 - 第二条线看起来很笨重。它也不处理new_name字符串中的空格。

var new_name = document.getElementById("preset_name").value
var unique_name = $("option[value="+new_name+"]").length === 0 ? true : false 

2 个答案:

答案 0 :(得分:0)

结合关于问题的两条评论,您可以简化为1行:

var unique_name = $("option[value="+$("#preset_name").val()+"]").length === 0;

您不需要三元组,因为===会产生真值或假值。除非您再次需要测试值,否则您甚至不需要将其存储在变量中 - 您只需使用jQuery检索它。

答案 1 :(得分:0)

你需要这样的东西吗?

HTML:

<select id="myselect">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 
<input id="newoption" type="text" />
<button id="check">Check</button>

jQuery的:

$(document).ready(function() {
    $("button#check").click(function() {
        var newOpt = $("input#newoption").val();
        $("#myselect option").each(function(){
            var text = $(this).val();
            if(newOpt.length>0 && text.indexOf(newOpt)!=-1){
                console.log("already present!");
            }
        });
    });
});

jsfiddle