Используя JQuery, как я могу проверить, содержит ли выпадающее меню значение? - PullRequest
3 голосов
/ 13 марта 2012

Используя JQuery, как я могу проверить, содержит ли выпадающее меню значение? По значению я не имею в виду текст, отображаемый как пункт меню. Я имею ввиду идентификатор (val) предмета. У меня есть список пунктов уже в выпадающем меню, и я хочу добавить больше. Прежде чем сделать это, я хочу убедиться, что я не дублирую пары ключ-значение.

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

Нечто подобное будет делать то, что вы хотите.( JSFiddle )

html

<select id="sel">
    <option value="foo">foo</option>
</select>
<button data-add="foo">add foo</button>
<button data-add="bar">add bar</button>

js

$('button').on('click', function() {
    var new_val = $(this).data('add');

    if ($('option[value='+new_val+']', '#sel').length) {
        alert('nope, exists!')
    } else {
        $('<option value="'+ new_val +'">'+new_val+'</option>').appendTo( $('#sel') );
    }
});

Если вы используете более старую версию jQuery, чем 1,7, используйте .bind вместо.on.

0 голосов
/ 19 марта 2012

Вот сокращенная версия решения Marc Diethelms, без необходимости атрибутов данных: jsfiddle

$('button').bind('click', function() {
    var new_val = $(this).html().split(' ').splice(1).join(' '),
        $sel = '#sel';
    $('option[value='+new_val+']', $sel).length > 0 ?
        alert('nope, exists!') :
        $('<option value="'+ new_val +'">'+new_val+'</option>').appendTo($sel);
});
0 голосов
/ 13 марта 2012

Вы можете попробовать это

  $(document).ready(function () {

  if ($("#drpentry").find("option[value='Dog']:contains('Ds')").length > 0) {

             alert('exist entry');
       }
       else {

           alert('not exist');
       }

   });

проверьте здесь: http://jsfiddle.net/Eemqh/1/

...