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

Cha*_*lie 21 javascript jquery

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

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

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

Ada*_*ald 24

像这样的东西会起作用:

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

  • 这样只会禁用该功能,而不会按照问题进行切换 (2认同)
  • `document.getElementById('element-name').disabled=false;` 就是我正在寻找的。谢谢! (2认同)

sam*_*one 21

一个工作的例子:

$().ready(function() {


    $('#clicker').click(function() {
        $('input').each(function() {
            if ($(this).attr('disabled')) {
                $(this).removeAttr('disabled');
            }
            else {
                $(this).attr({
                    'disabled': 'disabled'
                });
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


Rei*_*eid 6

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

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

它的工作原理是使用逻辑NOT运算符(感叹号),它返回操作数的反义.例如,!true将返回false.因此,通过使用!inputs[n].disabled,它将返回与当前设置相反的方向,从而切换它.

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

document.getElementById('your_button_id').onclick = toggle_inputs;
Run Code Online (Sandbox Code Playgroud)

您也可以使用addEventListener,但请参阅链接页面以获取更多信息,包括与Internet Explorer的兼容性.我上面给出的代码应该适用于所有浏览器,没有任何问题.