HTML入力ボタンの無効化と有効化


250

だから私はこのようなボタンを持っています:

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

必要に応じて無効または有効にするにはどうすればよいですか?私は試しましたdisabled="disable"が、有効に戻すのは問題です。falseに戻してみましたが、有効になりませんでした。


それを有効に戻すとはどういう意味ですか?一度無効にすると、同じ方法で再度有効にすることはできません(無効になっているMe()ため)
cjds

2
私がやろうとしていることは、特定のイベントが発生したときにボタンを無効または有効にすることです。
k.ken

回答:


461

JavaScriptの使用

  • HTMLボタンを無効にする

    document.getElementById("Button").disabled = true;
  • HTMLボタンを有効にする

    document.getElementById("Button").disabled = false;
  • デモはこちら


jQueryの使用

1.6より前のすべてのバージョンのjQuery

  • HTMLボタンを無効にする

    $('#Button').attr('disabled','disabled');
  • HTMLボタンを有効にする

    $('#Button').removeAttr('disabled');
  • デモはこちら

1.6以降のjQueryのすべてのバージョン

  • HTMLボタンを無効にする

    $('#Button').prop('disabled', true);
  • HTMLボタンを有効にする

    $('#Button').prop('disabled', false);
  • デモはこちら

PS jquery 1.6.1の変更に基づいてコードを更新しました。提案として、常に最新のjqueryファイルとprop()メソッドを使用してください。


これが機能するためにそこに属性が必要ですか?like
disables

いいえ、$(document).ready電話をかけることができます$('#Button').attr('disabled','disabled');。これにより、ページの読み込み時にボタンが無効になります。また、特定のイベントが発生した場合は、呼び出し$('#Button').removeAttr('disabled');て再度有効にすることができます...
12:27

無効になっている場合に灰色のスタイルを追加する方法
Lei Yang

1
あなたは、いくつかのようにCSSを追加することができます@LeiYang この
palaѕн

パラッシュが正しく書いたように、trueとfalseは文字列ではなくブール値であることに注意してください
Marco

24

そもそもそれを無効にしているので、それを有効にする方法はそのdisabledプロパティをとして設定することですfalse

disabledJavaScriptでそのプロパティを変更するには、次のようにします。

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="" />

あなたは、どちらか完全に属性を削除する必要があるか、そのプロパティを設定します。


最初にボタンを有効にして後で無効にしたい場合はどうでしょうか。enable = "true"も試しました。enableは適切なキーワードですか?
k.ken

2
@ k.kenいいえ、キーワードは「無効」です。最初にボタンを有効にする場合は、属性disabledをまったく配置しないでください。だけを使用してください<input type="button" value="Submit" />。ステータスを変更する場合は、.prop("disabled", true);(またはfalse)を使用します
Ian

10

これは単純なJavaScriptでかなり簡単に行えます。ライブラリは必要ありません。

ボタンを有効にする

document.getElementById("Button").disabled=false;

ボタンを無効にする

 document.getElementById("Button").disabled=true;

外部ライブラリは必要ありません。


4

disable属性にはパラメータが1つしかありません。再度有効にしたい場合は、値を変更するだけでなく、すべてを削除する必要があります。


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

ここで 'btncancel'はボタンのクラス名です。



0
 <!--Button Disable Script-->
    <script type="text/javascript">
        function DisableButton() {
            document.getElementById("<%=btnSave.ClientID %>").disabled = true;
        }
        window.onbeforeunload = DisableButton;
    </script>
    <!--Button Disable Script-->

-2

これはきっとうまくいきます。

ボタンを無効にするには

$('#btn_id').button('disable');

ボタンを有効にするには

$('#btn_id').button('enable');

-6

PHPに固執...

上記の基準が満たされたときにボタンが表示されるのを許可するだけではありません。

<?
if (whatever == something) {
    $display = '<input id="Button" type="button" value="+" style="background-color:grey" onclick="Me();"/>';
    return $display;
}
?>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.