-1

チェックボックスの選択に基づいて無効なテキストフィールドを有効にしたいので、チェックボックスの選択に基づいてテキストフィールドを有効にするJavaScriptコードを以下に示しますが、これは機能せず、struts 1.3 HTMLタグを使用しています

if(document.getElementsByName("cad.question7").checked = 'true'){
    document.getElementsByName("cad.question7.answer8").disabled = 'false';
}
<html:checkbox  value="Y" property="cad.question7" onclick="javascript:enableText7();" />
<bean:message key="cm.assessments.cad.question.7.a" />
<html:text size="10" disabled="true" property="cad.question7.answer8" tabindex="68" />
4

4 に答える 4

5

getElementsByNameはHTMLCollectionを返します。

コレクション内の各要素にアクセスするには、それらを反復処理するか、1 つしかない場合は次のように最初の要素にアクセスします。

document.getElementsByName("cad.question7.answer8")[0].disabled = false;

デモ- 最初のアイテムにアクセスHTMLCollection


複数の一致が予想される場合は、次のように反復します。

var index;
var elements = document.getElementsByName("cad.question7.answer8");
var count = elements.length;

for(index = 0; index < count; index++){
    elements[index].disabled = false;
}

デモ- 内のすべてのアイテムを繰り返しますHTMLCollection


さらに、==or===を使用する条件付き評価を実行するとき=は、右の値を左に割り当て、それらを互いに比較しません。

単一の一致のみが予想されると仮定すると、完全なコードは次のようになります。

if(document.getElementsByName("cad.question7")[0].checked){
    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

デモ- 上記の新しいコードの例


于 2013-05-09T07:18:43.360 に答える
0

以下の JavaScript コードを使用できます。

しかし、これを使用することをお勧めします(最初のもの):

if(document.getElementsByName("cad.question7").checked){
    document.getElementsByName("cad.question7.answer8")[0].disabled = false;
}

また

if(document.getElementsByName("cad.question7").checked == true){
    document.getElementsByName("cad.question7.answer8").disabled = false;
}

また

var chkTest = document.getElementsByName("cad.question7");
if(chkTest.checked){
    document.getElementsByName("cad.question7.answer8").disabled = false;
}
于 2013-05-09T07:19:57.587 に答える