как сделать флажок включить / отключить на основе выбора в нескольких окнах - PullRequest
1 голос
/ 06 февраля 2010

У меня есть поле со множественным выбором и флажок в форме.

Я бы хотел, чтобы этот флажок был включен только тогда, когда пользователь выбирает конкретное значение в комбинированном списке множественного выбора.

Возможно ли это сделать ... либо с помощью javascript, либо с помощью jQuery. Я уже использую jquery в другом месте.

Пример: http://jsbin.com/ipomu

для начала флажок будет отключен. он должен быть включен только когда пользователь нажимает на опцию 2

Ответы [ 4 ]

3 голосов
/ 06 февраля 2010

образец один. Вы просто добавляете значения параметров, для которых вы хотите включить флажок для объекта массива. В следующем примере я включил флажок при нажатии 2, 3,5 и 7 вариантов.

<script type="text/javascript">
$(function(){
  var arrVal = [ "2","3", "5", "7" ];

  $("#combobox").change(function(){
    var valToCheck = String($(this).val());

    if ( jQuery.inArray(valToCheck,arrVal) == -1 )
    {
        $("#check").attr("disabled", "true");            
    }
    else
    {
        $("#check").removeAttr ( "disabled" );    
    }        
  });
});
</script>
<select id="combobox" size="9" id="reasons" multiple="multiple">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
    <option value="5">Option 5</option>
    <option value="6">Option 6</option>
    <option value="7">Option 7</option>
</select>

Рабочая демоверсия для вашего примера.

1 голос
/ 06 февраля 2010

Я обновил предоставленную вами ссылку на jsbin, указав правильный jQuery, необходимый для достижения желаемого эффекта.

http://jsbin.com/ipomu/2

0 голосов
/ 06 февраля 2010

Проще всего, с прямым Javascript и без jQuery, вы можете добавить следующий атрибут onchange к элементу select (при условии, что оба элемента окружены одной и той же формой):

onchange="this.form['mycheck'].disabled = (this.value != 2)"

Если они не имеют одинаковую форму, или если вы не знаете имя предполагаемого элемента, или элементы создаются динамически, .disabled = (this.value != 2) будет таким же, но метод нахождения правильного флажка может быть другим.

0 голосов
/ 06 февраля 2010

Вы можете включить / отключить элемент html через javascript с помощью:

document.getElementById('<the id of your checkbox here>').disabled = true;

Итак, вы должны добавить событие OnChange вашего комбинированного поля множественного выбора и добавить логику в некоторую функцию, когда нужно отключить / включить ваш флажок. Пример:

<select onChange="myfunc(this)">

...

<script>
function myfunc(sel)
{
if (sel.selectedValue == "2")
    document.getElementById('<the id of your checkbox here>').disabled = true;
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...