web-dev-qa-db-ja.com

javascriptはhtml入力から「無効」属性を削除します

Javascriptを使用してHTML入力から「無効」属性を削除するにはどうすればよいですか?

<input id="edit" disabled>

onClickで、入力タグが「無効」属性で構成されないようにします。

74
Jam Ville

要素のdisabledプロパティをfalseに設定します。

document.getElementById('my-input-id').disabled = false;

JQueryを使用している場合、同等のものは次のようになります。

$('#my-input-id').prop('disabled', false);

いくつかの入力フィールドについては、代わりにクラスごとにアクセスできます。

var inputs = document.getElementsByClassName('my-input-class');
for(var i = 0; i < inputs.length; i++) {
    inputs[i].disabled = false;
}

たとえば、documentをフォームに置き換えて、そのフォーム内の要素のみを検索できます。 getElementsByTagName('input')を使用して、すべての入力要素を取得することもできます。 forの反復では、inputs[i].type == 'text'を確認する必要があります。

164
David Hedlund

なぜその属性を削除しないのですか?

  1. バニラJS:elem.removeAttribute('disabled')
  2. jQuery:elem.removeAttr('disabled')
26
Dragos Rusu

入力のdisabledプロパティを使用してnameをfalseに設定するには:

document.myForm.myInputName.disabled = false;
2
Henry Hedden
method 1 <input type="text" onclick="this.disabled=false;" disabled>
<hr>
method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>
<hr>
method 3 <input type="text" onclick="this.removeAttribute('readonly');" readonly>

前の回答のコードはインラインモードでは機能しないようですが、回避策があります:方法3。

デモを見る https://jsfiddle.net/eliz82/xqzccdfg/

0
eliz82