使用JavaScript或Prototype获取表单中的所有控件并启用它们?

使用JavaScript或Prototype获取表单中的所有控件并启用它们?,javascript,controls,prototypejs,Javascript,Controls,Prototypejs,如何获取所有控件单选按钮、选择、文本字段等并将其状态设置为启用?使用Prototype.js: $$(":input").each(function (el) { el.enable(); });​ .如果您不关心较旧的浏览器,可以使用: (function (slice) { "use strict"; var elems; //select the elements elems = document.querySelectorAll('button,

如何获取所有控件单选按钮、选择、文本字段等并将其状态设置为启用?

使用Prototype.js:

$$(":input").each(function (el) {
   el.enable();
});​

.

如果您不关心较旧的浏览器,可以使用:

(function (slice) {
    "use strict";
    var elems;

    //select the elements
    elems = document.querySelectorAll('button, input, select, textarea');

    //cast to an array
    elems = slice.call(elems); 

    //iterate over the array
    elems.forEach(function (el) {
        //enable each element
        el.disabled = false;
    });
}(Array.prototype.slice));
否则,您需要使用document.getElementsByTagName并迭代每个标记:

(function (slice) {
    "use strict";
    var elems,
        elem,
        i,
        l;
    function getElemArr(tag) {
        var els;
        //get the elements
        els = document.getElementsByTagName(tag);
        //cast to array
        els = slice.call(els);
        return els;
    }
    //select each type
    elems = [].concat(
        getElemArr('button'),
        getElemArr('input'),
        getElemArr('select'),
        getElemArr('textarea')
    );
    //loop over every element
    for (i = 0, l = elems.length; i < l; i += 1) {
        elem = elems[i];
        elem.disabled = false;
    }
}(Array.prototype.slice));

@ZZZBOV这是一个很棒的链接,当我回答不清楚的问题时,你介意我使用它吗?我还想知道Joao在这个问题上编辑了什么?他添加了笑脸还是问号?@Goldentp,我没有写那篇文章,我只是在问别人他们尝试了什么时链接到它。随意使用。@Goldentp,您可以通过单击用户名上方的链接来查看问题的版本历史记录。他添加了标签。或者:输入。如果OP使用了jQuery。它在哪里说他们在使用jQuery?@Leetylor,你是对的,误读了标题,认为它说的是jQuery或Prototype,而不是JavaScript或Prototype。@Leetylor:你是对的,它说Prototype,我编辑了我的答案。这给了我非法字符错误。。。我能把它放在哪里?我试着把它放在一个函数的js文件中。解决了上面的问题,最后一件事,我怎么能把它限制在一个表单中?代码为我提供了站点的所有输入,而不仅仅是某个表单中的输入。$'myFormId'。选择'input'。调用'enable';或$$'myFormId input'。调用'enable';