我想知道脚本是否可以通过某种切换按钮启用/禁用页面上的所有输入元素。
我用谷歌搜索了它,但除了这个之外没有找到任何有用的东西:
http://www.codetoad.com/javascript/enable_disable_form_element.asp 但我不知道如何为切换编辑它。
答案 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';
}
}
这是我正在使用的一段代码,用于折叠具有给定类名的所有内容(它使用我上面提到的脚本)。但无论如何,我认为你的问题的关键是能够同时引用多个元素,该脚本将帮助你。
你问题中的链接也不适用于我:(。