11

私は次のウィジェットを使用しています http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/ これまでのところうまくいきましたが、属性を追加するには助けが必要です。Firebug を使用していて、チェックボックスをクリックするだけでは、checked 属性が期待どおりに表示されないことに気付きました。私のコードでは、ウィジェットを変更しました。チェック済みの属性を削除するコードを追加できました。

this.removeAttribute(\'checked\'); this.checked=false;

事前に商品を確認した場合。このコードの使用に成功しました

this.setAttribute(\'checked\', \'checked\'); this.checked=true; 

ページの読み込み時に項目がチェックされていなかった場合。

チェックボックスで両方のコードセットを利用できるようにする必要があるときに問題が発生します。次のことを試みました

onclick="if($(this).attr(\'checked\') == \'true\') { this.setAttribute(\'checked\', \'checked\'); this.checked=true; } else { this.removeAttribute(\'checked\'); this.checked=false; }

コードはチェック済みの属性を削除しますが (ページの読み込み時に事前にチェックされている場合)、チェックボックスをクリックして属性を追加しようとしても (ページの読み込み時にチェックされていない場合)、何も起こりません。

助けてくれてありがとう、そして私の貧弱なコーディングでごめんなさい。

4

4 に答える 4

23

属性の使用を削除するためのjQueryで

this.removeAttr('checked');

および属性の使用を設定するために

this.attr('checked', 'checked');
于 2010-09-14T17:50:18.037 に答える
2

チェックボックスをクリックするだけでは、チェックされた属性が表示されないことに気付きました

その通りです。checked属性が入力の現在のチェック状態に対応していません。実際には、HTML ドキュメントの最初のチェック状態、つまりフォームがリセットされた場合に復元されるチェック状態に対応します。

IEが間違っているため、IEは属性を追加します。getAttribute/setAttributeは IE では機能しません — HTML ドキュメントでは絶対に使用しないでください! — 実際には、属性ではなくプロパティを設定します。

これがdefaultCheckedプロパティです。しかし、なぜchecked属性を設定しようとしているのですか? 正当な理由はほとんどありません。通常、普通の古いcheckedプロパティが探しているものです。

于 2010-09-14T16:57:50.440 に答える
1

Firebugを使用しているときに、チェックボックスをクリックするだけでは、チェックされた属性が期待どおりに表示されないことに気付きました。

なぜchecked属性が必要なのですか?このcheckedプロパティは、通常必要なすべての機能を提供します。つまり、チェックボックスをオンにすると設定さelement.checkedtrue、その逆も同様です。つまり、変更するelement.checkedとボックスの状態が変更されます。

于 2010-09-14T16:54:52.740 に答える