Проверить, если выделить определенный вариант


Я подозреваю, что есть более простой способ, чтобы найти, если выбрать есть определенный вариант, но не знаю что. Задача в следующем, чтобы проверить, если желаемый вариант существует или нет, и если это так, установите его в качестве выбранного варианта:

Разметки

<input type="text" size="2" id="selectVal"/>
<button onclick="setSelect()">Set the select</button>
<select id="mySelect">
    <option value="0">Select an option</option>
    <option value="1">A</option>
    <option value="2">B</option>
    <option value="3">C</option>
    <option value="4">D</option>
</select>

Яш

function setSelect() {
    var desiredOption = $("#selectVal").val();
    if (desiredOption == '') {
        $("#selectVal").focus();
        return false;
    }
    var hasOption = $('#mySelect option[value="' + desiredOption + '"]');
    if (hasOption.length == 0) {
        alert('No such option');
    } else {
        $('#mySelect').val(desiredOption);
    }
    $("#selectVal").select();
}

Чтобы быть ясным, я не удивлюсь, если один метод может сделать работу Следующие две строки:

var hasOption = $('#mySelect option[value="' + desiredOption + '"]');
if (hasOption.length == 0)

Какие-либо предложения?

jsfiddle здесь.



33973
6
задан 29 августа 2011 в 11:08 Источник Поделиться
Комментарии
1 ответ

Вы могли бы попробовать силы и возможность быть выбранным. Потому что jQuery не бросать ошибки, когда это не набор элементов, вы можете использовать это в ваших интересах в случае, если заявление. Пару эту цепочку в jQuery и вы можете сделать что-то вроде:

function setSelect() {
var desiredOption = $("#selectVal").val();
if (desiredOption == '') {
$("#selectVal").focus();
return false;
}
if (!$('#mySelect option[value="' +desiredOption+ '"]').prop("selected", true).length) {
alert('No such option');
}
$("#selectVal").select();
}


Обновленный скрипку: http://jsfiddle.net/SPvrA/7/

3
ответ дан 29 августа 2011 в 11:08 Источник Поделиться