Как проверить, существует ли значение в поле выбора - PullRequest
11 голосов
/ 07 октября 2010

Есть ли другой метод, кроме запуска цикла for, чтобы проверить, существует ли значение в поле выбора с помощью JavaScript?

Я ищу что-то вроде document.getElementById('selbox').valueExists('myval');

Ответы [ 5 ]

6 голосов
/ 07 октября 2010

Вы не можете расширять методы, которые есть у select -элемента. Поэтому не будет решения без дополнительной функции для проверки существования значения в select.

«Решение» без цикла может быть следующим ...

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

    if (obj !== null) {
        return (obj.innerHTML.indexOf('value="' + value + '"') > -1);
    } else {
        return false;
    }
}
2 голосов
/ 17 сентября 2017

с ecma6:

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

это найдет первый элемент, который содержит атрибут value = "my_value".

PS: простите за мой язык:)

2 голосов
/ 25 марта 2013

это сработало для меня, когда страница загружает значения из параметров публикации, поэтому, если значение отсутствует при выборе, предупреждает пользователя; иначе, продолжайте (или предупреждайте):

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;
}
1 голос
/ 23 сентября 2016

if(!$('#select-box').find("option:contains('" + thevalue  + "')").length){
//do stuff
}
1 голос
/ 07 октября 2010

вы можете сделать это с помощью jquery

Использовать селектор равных атрибутов

см. В

Проверьте, есть ли значение в списке выбора с помощью JQuery

в javascript вы можете запускать как

 for (var i=0; i<document.getElementById('mySelect').options.length; i++)
           { 
            if (document.getElementById('mySelect').options[i].text == seachtext) 
            { 
             alert('found');
             break;
            } 
       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...