0

我正在尝试禁用页面上的每种类型的输入并取消选中或清空这些值,因此我编写了以下代码:-

function disableAll() {
                  if ($('#chkLoginEnabled').is(':checked')) {
                      $("input").attr("disabled", false);
                  }
                  else {
                      $("input").attr("disabled", true);
                      $("input checkbox").attr('checked') = 'checked';
                      $("input textbox").val() = "";

                  }
                  $("#chkLoginEnabled").attr("disabled", false);
                }

它可以禁用所有输入(并正确地重新启用我需要的输入),

但是,它不会重置任何输入。

4

5 回答 5

2

尝试使用prop()而不是attr()

$("input").prop("disabled", false);
于 2013-07-18T12:34:17.480 回答
2

尝试

function disableAll() {
    var inputs = $('input');
    if ($('#chkLoginEnabled').is(':checked')) {
        inputs.prop('disabled', false);
    } else {
        inputs.prop('disabled', true);
        inputs.filter('[type="checkbox"]').prop('checked', false)
        inputs.filter(':text').val('')
    }
    $('#chkLoginEnabled').attr('disabled', false);
}
于 2013-07-18T12:35:34.010 回答
1
$("input:not([type='hidden'], :checkbox, :radio)").val("");
$(":checkbox, :radio").prop( "checked", false );
$(":input").prop( "disabled", true );

这将清除不是复选框、单选或隐藏的每个输入的值(这会导致您以后可能出现问题)。那些未选中的没有“价值”,所以我们在第二行取消选中它们。

最后,在第 3 行中,我们禁用所有这些。

于 2013-07-18T12:38:45.750 回答
-1

你需要做:

 $("input textbox").val('');

清除特定输入。

于 2013-07-18T12:34:19.443 回答
-1

只是猜测,但也许 .val() 期望您在括号内传递参数,所以

$("输入文本框").val() = "";

会变成

$("输入文本框").val("");

于 2013-07-18T12:35:47.833 回答