2

自動的に生成される 2 つのテキスト領域があり、ページが読み込まれたときに JavaScript を使用して両方を無効にする必要があります。問題は、それらが自動的に生成されるためです。両方とも ID を持っているため、ID を与えることができませ

試行された Javascript:

document.getElementByClassName('option_window-size').disabled=true;

getElementbyClassNameを IDに変更すると、テキスト領域にも ID を指定すると機能するため、これが機能することはわかっています。しかし、私が言うように、それはクラス外で機能する必要があります。また、製品ごとおよびページごとに自動的に生成されるため、Name 属性を使用することはできません...

私はこれを試しましたが、うまくいきません。変更したのは ID から CLASS だけであるため、理由がわかりません。

テキストエリア

<textarea name="willbeautogenerated" class="option_window-size" cols="40" rows="5">willbeautogenerated</textarea>

追記: PHP を使用してカウントし、異なる ID を割り当てようとしましたが、複雑になりすぎています。また、無効にする必要があるのはこれら 2 つだけなので、ページ上のすべてのテキスト領域を無効にすることはできません。

4

8 に答える 8

8

getElementByClassName を ID に変更すると、テキスト領域にも ID を指定すると機能するため、これが機能することはわかっています。しかし、私が言うように、それはクラス外で機能する必要があります。

getElementsByClassNameNode自体ではなくNodeListを返します。リストをループする必要があります。アイテムだけが必要な場合は、 index を選択してください。10

var nodes = document.getElementsByClassName("option_window-size"),
    i = 0, e;

while (e = nodes[i++]) e.disabled = true;
于 2013-07-16T13:48:03.633 に答える
2

jQuery はこれを非常に簡単にします。

$(".selector").prop("disabled", true);

しかし!この注意事項は、 および のマニュアル ページに記載されていることに注意して$.prop()ください$.attr()

注: HTML 経由で作成された、または既に HTML ドキュメント内にある入力要素の type プロパティ (または属性) を変更しようとすると、Internet Explorer 6、7、または 8 によってスローされるエラーが発生します。

これはあなたの質問には直接当てはまりませんが、入力要素のprop/を変更attrしているので注意してください。

しかし、プレーンな古い JS ではまだ可能です。

var els = document.getElementsByClassName("selector"); // note: Elements, not Element

for(var e = 0; e < els.length; e++)
{
    els[e].disabled = true;
}

getElementsByClassName は NodeList を返します。その中の各要素を反復処理するだけです。

于 2013-07-16T13:52:38.410 に答える
1

クラスセレクターを使用できます。

$('.option_window').attr('disabled', true);

また

$('.option_window')[0].disabled = true;
于 2013-07-16T13:48:19.620 に答える
1

Jquery を使用すると、次のことができます。

//make sure to use .prop() and not .attr() when setting properties of an element
$('.option_window').prop('disabled', true);
于 2013-07-16T13:50:30.830 に答える
0

CSS を使用できます。

.option_window-size{display:none;}
于 2013-07-16T14:24:15.037 に答える
0

jqueryで.prop()メソッドを使用してtexareaを無効にします...

      $('.option_window-size').prop('disabled', true);
于 2013-07-16T13:57:02.853 に答える
0

最初の要素の場合、要素の欠落と要素が [0] のようなインデックス。

  document.getElementsByClassName('option_window-size')[0].disabled=true;

また

  document.getElementsByName('willbeautogenerated')[0].disabled=true;
于 2013-07-16T13:55:18.457 に答える