Javascript 如何通过循环禁用所有输入框

Javascript 如何通过循环禁用所有输入框,javascript,jquery,Javascript,Jquery,我正在从表单中获取所有输入框ID,我需要禁用所有输入框 我试过下面的代码 var results = []; $('#form input').each(function(){ results.push({ id: this.id, value: this.value }); }); var i; for( i= 0; i< results.length ; ++i) { var input_id = results[i].id; /

我正在从表单中获取所有输入框ID,我需要禁用所有输入框

我试过下面的代码

var results = [];
$('#form input').each(function(){
    results.push({
        id: this.id,
        value: this.value
    });
});
var i;
for( i= 0; i< results.length ; ++i)
{
    var input_id = results[i].id; //getting all input box ids
    $('#input_id ').prop('disabled', true);
}
var结果=[];
$('#表单输入')。每个(函数(){
结果:推({
id:this.id,
值:这个值
});
});
var i;
对于(i=0;i
有谁能帮上忙吗?

$(“#input_id”)
查找具有
id=“input_id”
字面意思的元素。要使用
input\u id
变量,请使用字符串连接:

    $('#' + input_id).prop('disabled', true);
//      ^^^^^^^^^^^^
…或在ES2015+中,a:


旁注:您可以使用jQuery的。但是没有理由做两个循环。相反,只需对
$(“#表单输入”)的结果调用
prop
。每个(…)
。jQuery是基于集合的,当您使用mutator操作(如
.prop(“disabled,true)
)时,它适用于集合中的所有元素:

var results = [];
$('#form input').each(function(){
    results.push({
        id: this.id,
        value: this.value
    });
}).prop("disabled", true); // ***
或者,您可以使用
map
(并在最后获得一个真正的数组,而不是jQuery对象),直接在回调中设置
disabled

var results = $('#form input').map(function() {
    this.disabled = true; // ***
    return {
        id: this.id,
        value: this.value
    };
}).get();

为什么没有一行,因为似乎所有的输入都是相关的

$("#form input").prop('disabled', true);


如果你只想选择那些id为的,你能分享你使用的html吗?@Baboo_uu我得到了答案,谢谢你。@Andreas-OMG,我怎么会错过输入上的循环?!修复了。@manjunath-不用担心!我已经添加了一个替代答案。编码愉快!非常感谢T.J Crowder。
$("#form input").prop('disabled', true);
$("#form input[id]").prop('disabled', true);