jQuery: изменить раскрывающийся список, если флажок установлен или снят - PullRequest
3 голосов
/ 27 марта 2012

У меня есть эта форма:

<input type="checkbox" value="First" />First
<input type="checkbox" value="Second" />Second
<input type="checkbox" value="Third" />Third

<select name="first-drop">
    <option value="---">---</option>
    <option value="Option1">Option1</option>
    <option value="Option2">Option2</option>
</select>

Есть ли способ (с помощью JS / jQuery), что я могу изменить значение first-drop на --- всякий раз, когда флажок First снят?

Ответы [ 2 ]

3 голосов
/ 27 марта 2012
$('input[type="checkbox"][value="First"]').change(function (){
    $('select[name="first-drop"]').toggle();
});​

LIVE DEMO

Обратите внимание, что я исправил вашу разметку:

<input type="checkbox" value="First" checked="checked" >First
<input type="checkbox" value="Second" />Second
<input type="checkbox" value="Third" />Third

<select name="first-drop">
    <option value="">---</option>
    <option value="Option1">Option1</option>
    <option value="Option2">Option2</option>
</select>​

Обновление:

Теперь вы хотите:

$('input[type="checkbox"][value="First"]').change(function() {
    if (!this.checked) {
        $('select[name="first-drop"] option:first').prop('selected', 'selected');
    }
});

LIVE DEMO

Если вы дадитеИдентификаторы элементов DOM могут быть простыми:

$('#first').change(function() {
    if (!this.checked) 
        $('#nothing').prop('selected', 'selected');
});

Обновленный DOM:

<input type="checkbox" value="First" id="first" >First
<input type="checkbox" value="Second">Second
<input type="checkbox" value="Third">Third

<select name="first-drop">
    <option value="" id="nothing" >---</option>
    <option value="Option1" >Option1</option>
    <option value="Option2">Option2</option>
</select>​

LIVE DEMO

2 голосов
/ 27 марта 2012

Я добавил идентификатор к первому флажку

<input id="first" type="checkbox" value="First">First</input>
<input type="checkbox" value="Second">Second</input>
<input type="checkbox" value="Third">Third</input>

<select name="first-drop">
    <option value="">---</option>
    <option value="Option1">Option1</option>
    <option value="Option2">$Option2</option>
</select>

<script type="text/javascript">
    $(function () {
        $("#first").click(function () {
            if ($(this)[0].checked == true) {
                $("[name='first-drop'] option:first").attr("selected", "selected");
            }
        });
    });​
</script>

Демо:

http://jsfiddle.net/8BtYc/2/

Редактировать: Исправлен мой код, чтобы он неПереключение при снятии первого флажка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...