如何检查选择框中是否存在值

时间:2010-10-07 06:20:42

标签: javascript dom

除了运行for循环以检查选择框中是否存在使用JavaScript的值之外,还有其他方法吗?

我正在寻找像document.getElementById('selbox').valueExists('myval');

这样的东西

5 个答案:

答案 0 :(得分:6)

您无法扩展select - 元素所具有的方法。因此,如果没有额外的函数来检查select中是否存在值,就不会有解决方案。

没有循环的“解决方案”可以是以下内容......

function SelectHasValue(select, value) {
    obj = document.getElementById(select);

    if (obj !== null) {
        return (obj.innerHTML.indexOf('value="' + value + '"') > -1);
    } else {
        return false;
    }
}

答案 1 :(得分:2)

当页面从post参数加载值时,这对我有用,所以如果select中没有值,则提醒用户;否则,继续(或提醒):

document.getElementById('your_select_id').value = target_value;
if (document.getElementById('your_select_id').value !== target_value ){
alert('This value is not in Select');
    return;
}

答案 2 :(得分:2)

使用ecma6:

let option = document.getElementById('selbox').querySelector('[value="' + my_value + '"]');

这将找到包含属性value =“my_value”的第一个元素。

PS:对不起我的英语:)

答案 3 :(得分:1)

你可以用jquery

来做

使用Attribute Equals Selector

Check if value is in select list with JQuery

在javascript中你可以像

一样运行
 for (var i=0; i<document.getElementById('mySelect').options.length; i++)
           { 
            if (document.getElementById('mySelect').options[i].text == seachtext) 
            { 
             alert('found');
             break;
            } 
       }

答案 4 :(得分:1)

&#13;
&#13;
if(!$('#select-box').find("option:contains('" + thevalue  + "')").length){
//do stuff
}
&#13;
&#13;
&#13;