禁用并重置或清空所有输入

时间:2013-07-18 12:32:07

标签: javascript jquery html

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

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);
                }

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

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

5 个答案:

答案 0 :(得分:2)

尝试使用prop()代替attr()

$("input").prop("disabled", false);

答案 1 :(得分: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);
}

答案 2 :(得分:1)

$("input:not([type='hidden'], :checkbox, :radio)").val("");
$(":checkbox, :radio").prop( "checked", false );
$(":input").prop( "disabled", true );

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

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

答案 3 :(得分:-1)

你需要这样做:

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

清除特定输入。

答案 4 :(得分:-1)

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

$(“输入文本框”)。val()=“”;

会改为

$(“输入文本框”)。val(“”);