-1

我想默认禁用输入,并且我有一个允许启用它们的复选框;所以我的复选框代码是:

function toggleStatus() {
  if ($('#toggleElement').is(':checked')) {
    $('#elementsToOperateOn :input').attr('disabled', true);
  } 
  else {
    $('#elementsToOperateOn :input').removeAttr('disabled');
  }
}

它在输入中被调用,onchange="toggleStatus()";但输入的默认状态已启用,我不想在每个输入中添加 disabled="disabled",我该如何使用 jquery 来做到这一点?我怎样才能使它与现有的onchange一起工作?

4

4 回答 4

4
$(function(){
    $('#elementsToOperateOn :input').prop('disabled', true);
});

当 DOM 准备好时禁用输入。

OK 在你更新之后,答案就更简单了,只要触发onchange事件:

要么:

toggleStatus();

或与

$('#toggleElement').change();
于 2012-06-11T22:04:08.623 回答
1

使用.prop代替.attr

$(':input').prop('disabled', true);
于 2012-06-11T22:03:48.763 回答
0

试试这个。

$(document).ready(function() {
    $('input, select').not('#toggleElement').attr('disabled', true);
});
于 2012-06-11T22:04:27.680 回答
0

让 jquery 在启动时遍历每个输入字段并添加 disabled 属性

$(document).ready(function(){

    $('input').each(function(){

      $(this).attr("disabled", "disabled");

      });
    });

对于您的切换脚本,使用类选择器

$('.elementsToOperatOn').each(function(){
  $(this).removeAttr('disabled');
});
于 2012-06-11T22:06:25.643 回答