Script для включения/выключения входных элементов?

Мне интересно, разрешить ли script включать/отключать все элементы ввода на странице с помощью какой-либо кнопки переключения.

Я искал его, но не нашел ничего полезного, кроме этого:

http://www.codetoad.com/javascript/enable_disable_form_element.asp но я не уверен, как отредактировать его для переключения.

Спасибо!

Ответы

Ответ 1

Рабочий пример:

$().ready(function() {


    $('#clicker').click(function() {
        $('input').each(function() {
            if ($(this).attr('disabled')) {
                $(this).removeAttr('disabled');
            }
            else {
                $(this).attr({
                    'disabled': 'disabled'
                });
            }
        });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<input type='text'></input>
<input type='text'></input>
<input type='text'></input>


<div id='clicker' style='background-color:#FF0000; height:40px; width:100px;'></div>

Ответ 2

Что-то вроде этого будет работать:

var inputs=document.getElementsByTagName('input');
for(i=0;i<inputs.length;i++){
    inputs[i].disabled=true;
}   

Ответ 3

Вот функция для переключения всех входов на странице:

function toggle_inputs() {
    var inputs = document.getElementsByTagName('input');
    for (var i = inputs.length, n = 0; n < i; n++) {
        inputs[n].disabled = !inputs[n].disabled;
    }
}

Он работает, используя логический оператор NOT (восклицательный знак), который возвращает противоположность операнду. Например, !true вернет false. Таким образом, используя !inputs[n].disabled, он вернет противоположность тому, что в настоящее время установлен, тем самым переключив его.

Если вам нужен код для привязки события click к кнопке:

document.getElementById('your_button_id').onclick = toggle_inputs;

Вы также можете использовать addEventListener, но см. связанную страницу для получения дополнительной информации, включая совместимость с Internet Explorer. Код, который я привел выше, должен работать во всех браузерах без проблем.

Ответ 4

for (var i = 0; i < document.getElementyByTagName('input').length; i++) {
  document.getElementsByTagName('input')[i].disabled = 'disabled';
}

Ответ 5

http://code.google.com/p/getelementsbyclassname/

^^ Роберт Найман имеет "получить элементы по классам" script. В основном вы просто назначили все эти входные элементы одному классу, а затем сделаете что-то вроде:

//Collapse all the nodes
function collapseNodesByClass(theClass){
  var nodes = getElementsByClassName(theClass);
  for(i = 0; i < nodes.length; i++){
    nodes[i].style.display='none';
  }
}

Это фрагмент кода, который я использую в настоящее время для свертывания всего с заданным именем класса (он использует script, упомянутый выше). Но в любом случае я думаю, что ключом к вашей проблеме является возможность одновременного обращения к нескольким элементам, что поможет вам script.

Также ссылка на ваш вопрос не работала для меня: (.