Javascript 禁用和启用html输入按钮

Javascript 禁用和启用html输入按钮,javascript,jquery,Javascript,Jquery,我有一个这样的按钮: <input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/> 我如何在需要时禁用和启用它?我已经尝试了disabled=“disable”,但是重新启用它是一个问题。我尝试将其设置回false,但没有启用它 由于您首先要禁用它,因此启用它的方法是将其disabled属性设置为false 要在Javascript中更改其disabled属性

我有一个这样的按钮:

<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>


我如何在需要时禁用和启用它?我已经尝试了
disabled=“disable”
,但是重新启用它是一个问题。我尝试将其设置回false,但没有启用它

由于您首先要禁用它,因此启用它的方法是将其
disabled
属性设置为
false

要在Javascript中更改其
disabled
属性,请使用以下命令:

var btn = document.getElementById("Button");
btn.disabled = false;
显然,要再次禁用它,您需要使用
true

由于还使用jQuery标记了问题,因此可以使用
.prop
方法。比如:

var btn = $("#Button");
btn.prop("disabled", true);   // Or `false`
这在jQuery的较新版本中。较旧的方法是添加或删除如下属性:

var btn = $("#Button");
btn.attr("disabled", "disabled");
// or
btn.removeAttr("disabled");
仅存在
disabled
属性就禁用了元素,因此不能将其值设置为“false”。即使下面的命令也应该禁用该元素

<input type="button" value="Submit" disabled="" />


您需要完全删除属性,或者设置属性。

禁用属性只有一个参数。如果您想重新启用它,您必须删除整个内容,而不仅仅是更改值。

使用Javascript
  • 禁用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    
  • 启用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    

使用jQuery jQuery 1.6之前的所有版本

  • 禁用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    
  • 启用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    
1.6之后的所有jQuery版本

  • 禁用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    
  • 启用html按钮

    document.getElementById("Button").disabled = true;
    
    document.getElementById("Button").disabled = false;
    
    $('#Button').attr('disabled','disabled');
    
    $('#Button').removeAttr('disabled');
    
    $('#Button').prop('disabled', true);
    
    $('#Button').prop('disabled', false);
    

p.S.根据更新了代码。作为建议,请始终使用最新的jquery文件和
prop()
方法。

只需简单的JavaScript就可以轻松完成这项工作,无需库

启用按钮

document.getElementById("Button").disabled=false;
 document.getElementById("Button").disabled=true;
$('#btn_id').button('disable');
$('#btn_id').button('enable');
禁用按钮

document.getElementById("Button").disabled=false;
 document.getElementById("Button").disabled=true;
$('#btn_id').button('disable');
$('#btn_id').button('enable');
不需要外部库

$(".btncancel").button({ disabled: true });

这里的“btncancel”是按钮的类名。

这肯定会起作用

禁用按钮

document.getElementById("Button").disabled=false;
 document.getElementById("Button").disabled=true;
$('#btn_id').button('disable');
$('#btn_id').button('enable');
启用按钮

document.getElementById("Button").disabled=false;
 document.getElementById("Button").disabled=true;
$('#btn_id').button('disable');
$('#btn_id').button('enable');
坚持使用php

为什么不在满足上述条件后才允许按钮出现

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>

没有jQuery禁用输入将更简单

Button.disabled=1;
函数dis(){
Button.disabled=!Button.disabled;
}

切换禁用

函数禁用按钮(){
document.getElementById(“”).disabled=true;
}
window.onbeforeunload=禁用按钮;

虽然与问题没有直接关系,但如果您跳到这个问题上,希望禁用除典型输入元素
按钮、输入、文本区域以外的其他元素,则语法将不起作用

要禁用div或span,请使用


附言:明白了,只有当你想禁用的时候才打这个电话。chrome版本83中的一个错误导致即使第二个参数为false,也会始终禁用该功能。

使用JavaScript禁用/启用html输入按钮:

(并使用React进行反应。如果不使用React,则将“elementRef.current”替换为元素选择)

启用:

 elementRef.current.removeAttribute('disabled');

你是什么意思?一旦你禁用它,你就不能用相同的方法重新启用它了
Me()
我希望你知道(因为它被禁用了),我想做的是在某些事件发生时禁用并启用按钮。如果我想先启用按钮,然后再禁用按钮,那该怎么办;我还尝试了enable=“true”。启用是否为正确的关键字???@k.ken否,关键字为“禁用”。如果希望按钮最初启用,则根本不要将属性
disabled
放入。只需使用
。当改变状态时,使用
.prop(“disabled”,true)
(或
false
)我需要那里的属性才能工作吗?比如disables=“disable”否,在
$(文档)中。ready
您可以调用
$('#Button').attr('disabled','disabled')。这将禁用页面加载按钮。当某些事件发生时,您可以调用
$(“#按钮”).removeAttr('disabled')
要再次启用它…如果禁用,如何添加灰色样式?@LeiYang您可以添加一些css,比如注意,true和false是布尔值,而不是字符串,正如palash正确写道的那样。值得怀疑的是,我惊讶的是,这在刚刚测试的Chrome、Edge、FF和Brave中确实有效。显然,这不是推荐的做法(请参阅:),因此我不太可能使用它,但这是一个有趣的发现。@KellyCode我同意您的看法,即使用元素ID的OP方法通常不好(可能适用于小型项目或可读代码缩短的代码段)