用于启用/禁用输入元素的脚本?

时间:2011-07-26 19:05:36

标签: javascript jquery

我想知道脚本是否可以通过某种切换按钮启用/禁用页面上的所有输入元素。

我用谷歌搜索了它,但除了这个之外没有找到任何有用的东西:

http://www.codetoad.com/javascript/enable_disable_form_element.asp 但我不知道如何为切换编辑它。

5 个答案:

答案 0 :(得分:23)

这样的事情会起作用:

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

答案 1 :(得分:20)

一个工作示例:

$().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 :(得分:5)

这是一个切换页面上所有输入的功能:

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

它的工作原理是使用logical NOT operator(感叹号),它返回操作数的反面。例如,!true将返回false。因此,通过使用!inputs[n].disabled,它将返回与当前设置相反的值,从而切换它。

如果您需要代码将click事件绑定到按钮:

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

您也可以使用addEventListener,但请参阅链接页面以获取更多信息,包括与Internet Explorer的兼容性。我上面给出的代码应该可以在所有浏览器中正常运行。

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

^^ Robert Nyman有一个“按类获取元素”脚本。基本上你只需将所有这些输入元素分配给同一个类,然后执行以下操作:

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

这是我正在使用的一段代码,用于折叠具有给定类名的所有内容(它使用我上面提到的脚本)。但无论如何,我认为你的问题的关键是能够同时引用多个元素,该脚本将帮助你。

你问题中的链接也不适用于我:(。