отключить ввод, если выбран из элемента - PullRequest
2 голосов
/ 16 июня 2011

В моем исходном коде есть следующее, я хочу иметь возможность выделять серым цветом компанию и док, отключать, если кто-то выбирает доставку или хранение

<select name="myselect" id="myselect">

<option value="shipping">Shipping</option>
<option value="Recieving" selected="selected">Reciving</option>
<option value="Storage">Storage</option>
</select>

company:<input name="company" type="text"  id="company" /></div>
dock:<input name="dockingStation" type="text"  id="dock" />

EDIT

Я пробовал это, но теперь он удаляет отключенный атрибут, но не добавляет его обратно

  <select name="myselect" id="myselect">

        <option value="shipping">Shipping</option>
        <option value="Recieving" selected="selected">Reciving</option>
        <option value="Storage">Storage</option>
        </select>

        company:<input name="company" type="text"  id="company" **disabled="disabled**"/>
        dock:<input name="dockingStation" type="text" id="dock" disabled="disabled" />

и jquery

$("#myselect").change(function() {
    var val = $(this).val();
    if(val == "shipping" || val == "storage") {
         $("#company").attr("disabled", true)  // this works

} еще { $ ( "# Компания"). RemoveAttr ( "отключено") .focus () } });

Но теперь, после включения, я не могу отключить его снова

EDIT

РАБОТАЕТ СЕЙЧАС

1 Ответ

4 голосов
/ 16 июня 2011
$("#myselect").change(function() {
    var val = $(this).val();
    if(val == "shipping" || val == "storage") {
        $("#company, #dock").prop("disabled", true)
    } else {
        $("#company, #dock").prop("disabled", false)
    }
});

или, если вы предпочитаете более короткое решение:

$("#myselect").change(function() {
    var val = $(this).val();
    $("#company, #dock").prop("disabled", (val == "shipping" || val == "storage"));
}).change(); // optional, set the correct state if you don't know what
             // the initial selected option will be on page load

Краткое объяснение:

  • Свяжите обработчик onchange с элементом select.
  • Если значение выбранной опции - «доставка» или «хранение», отключите два входа, в противном случае включите их.

См:

Демо: http://jsfiddle.net/f6AZk/

...