2

2つのチェックボックスが無効になっているHTMLフォームとonclick、ポップアップを表示してチェックボックスを有効にする必要があるイベントを含む画像があります。

<input id="chk1" type="checkbox" disabled="disabled" />
<input id="chk2" type="checkbox" disabled="disabled" />
<img src="..." onclick="window.open('...'); document.getElementById('chk1').disabled=false;document.getElementById('chk2').disabled=false" />

それが機能しないことを除いて。ポップアップウィンドウが開きますが、チェックボックスが有効になることはありません。

代わりにdisabled=false私はremoveAttribute("disabled")運が悪かった。window.openまた、を変更せずに最後のステートメントとして配置しましたonclick

jQueryは(まだ)このプロジェクトに含まれていないため、使用できません。私は何が間違っているのですか?

編集:

これを投稿したとき、inputタグがASP.NETによってレンダリングされていることを開示できませんでした。テストを通じて、IEとFFでのプロパティの動作に影響を与える使用<asp:CheckBox />との違いがあることがわかりました。<input type="checkbox" runat="server" />disabled

最終的な出力は同じだろうという印象を受けましたが、違いを見つけることはできませんでしたが、明らかにそうではありませんでした。上記のようにレンダリングされたコードは、CheckBoxオブジェクトを使用する場合はFFで機能しますが、IEでは機能しませんが、HtmlInputCheckBoxオブジェクトを使用する場合は両方で機能します。

getElementById(また、呼び出しは実際にはそれぞれの要素にASP.NET ClientIDプロパティを使用していることも指摘しておく必要があります。)

それでは、私の質問は、なぜこれが当てはまるのかということです。HtmlInputCheckBoxオブジェクトを使用しているのに、CheckBoxオブジェクトでは機能していないのに、IEとFFの両方で有効化/無効化機能が機能するのはなぜですか?

4

6 に答える 6

2

私はちょうど解決策を見つけました。わたしにはできる !

var checkBox = document.getElementById('" + chkBox.ClientID + "');
checkBox.removeAttribute('disabled');
checkBox.parentNode.removeAttribute('disabled');
于 2013-08-19T20:54:02.113 に答える
2

これで試して、

inputElement.removeAttribute( 'disabled' );
inputElement.closest('span').removeAttribute( 'disabled' );
于 2012-10-04T05:42:07.690 に答える
0

最初にネットワークを確認してください。2 つ目はリンクです。便利な機能です。

チェックボックス JS 機能の無効化/有効化

于 2011-07-29T17:10:04.147 に答える
0

チェックボックスを有効にするには、通常、次の両方を適用します。

inputElement.disabled = false;
inputElement.removeAttribute( 'disabled' );

DOM ノード プロパティが好きなブラウザもあれば、attr を調整したいブラウザもあります。

これがあなたが行っていることであり、機能していないとおっしゃっていた場合はお詫び申し上げます。あなたの言っていることがよくわかりませんでした。

于 2011-07-29T17:12:56.807 に答える
-2

実際、チェックボックスを有効にするには、反対のことを行います。これらを試してみてください...

document.formname.chkname.disabled='';
于 2011-07-29T17:12:20.917 に答える