2016-06-27 13 views
1

チェックボックスに関して奇妙な問題が発生しました。さまざまな理由から、アプリケーションのコンテキストに応じて、チェックボックスの入力をプログラムでチェックしたりチェックを外したりする必要があります。removeAttribute( 'checked')が動作しない

しかし、不明な理由でチェックボックスをオフにできませんでした。インターネット上で検索すると、「確認」として、ボックスをオフにするために、「確認」属性を削除することを教えバイナリ属性です: Check/Uncheck checkbox with javascript?と、これらの科目の Remove attribute "checked" of checkbox

なし(および他の多くの私が読むこと)私の場合に便利です:私はjQueryのを使用したくないので、同じことを行うための論理的な方法は、ちょうどそのよう、removeAttribute機能を使用することです:

document.getElementById('box').removeAttribute('checked'); 

それを実行しているようだが、何の効果が見られません。

私のコードは、それをここに投稿する複雑かつ巨大にビットであるので、私はあなたの問題を示すために、より関連性のjsFiddleを作った:https://jsfiddle.net/54fd795w/

ボタンを使用することにより、ボックスの状態は、あなたが何であれボックスのチェックに使用されたボタンが機能しているのに対し、チェックを外すボタンは機能していないことがわかります。

問題を解決するためのアイデアや回避策を見つけるためのアイデアはありますか?おかげさまで

+8

プロパティを直接変更する 'document.getElementById( 'box')。checked = false;' – gurvinder372

+1

ここに:https://jsfiddle.net/54fd795w/1/ –

+0

それは確かですか?私はそれが "バイナリ属性"と呼ばれていましたが、値が重要ではないことを意味するので、 "true"、true、 "false"、 "no"、 "duck" – Cheitan

答えて

3

checked属性は、のデフォルトのフィールドの状態を表します。フィールドを削除すると、フィールドが操作された場合(またはcheckedプロパティがすでに変更されている場合)は無効になります。

プロパティをに設定してください。それは現在の状態を表します。

document.getElementById('box').checked = false; 

あなたの第三者のコード「をチェックするために私をクリックして」で、例を主催していること注:

document.getElementById('box').checked = "checked"; 

を...あなたはプロパティを変更すると、文字列"checked"がされていますブール値trueに変換されます。 checkedプロパティはブール値のみを受け入れます。これは、のデフォルトのの状態をオーバーライドしています(チェックされた属性がないため、チェックされていません)。

削除するチェック済みの属性があることさえありません。

+0

この説明に感謝します! – Cheitan

関連する問題