2

コード:

var lstInstanceIds = getData.lstInstanceIds.split(',');
    for(var i=0; i<lstInstanceIds.length; i++) {
        var value = lstInstanceIds[i];
        $('input[value=' + value + ']').attr('checked','checked');
    }

だから私がしているのは、リストをループして、値が一致する場所でチェックされた属性をチェック済みとして設定することだけです。

これは、Chrome、Firefox、IE7/8、Safari で正常に動作します。しかし、IE6ではありません...

4

4 に答える 4

4

attr('checked', true)代わりに使用してください。

于 2010-04-01T15:46:30.277 に答える
1

IETesterは、真のIE6環境を正確に表したものではありません。主に、IE6ではなくローカルマシンにあるjavascriptエンジンを使用しているためです。IETesterを使用したIE6で動作し、見栄えがする多くのページに出くわしましたが、WindowsXP環境の実際のIE6で起動するとひどく失敗します。私の提案は、WinXPSP3でIE6の無料のVirtualPCイメージを入手することです。jQueryを使用して実際のエラーを見つけるのに非常に役立ちます(ただし、デバッグするのはまだ面倒です)。

于 2010-11-30T18:59:28.440 に答える
0

以前にも同様の問題がありました。それを修正するために、次のようなコードを使用しました。

var lstInstanceIds = getData.lstInstanceIds.split(',');
for(var i=0; i<lstInstanceIds.length; i++) {
    var value = lstInstanceIds[i];
    var checkbox = $('input[value=' + value + ']').get(0);
    if(checkbox.checked == false)
        checkbox.click();
}

これは、チェックボックスがチェックされているかどうかを確認します。そうでない場合は、クリックしてチェックします。すべてのブラウザーをサポートする必要があります。

于 2010-04-01T16:21:23.477 に答える
0

ここであなたが言及したことのみに基づいて基本的な例をセットアップすることができました(そう遠くないことを願っています).6インスタンスを使用してIETesterでテストしました.

<input type="checkbox" id="chk1" value="chk1" />
<input type="checkbox" id="chk2" value="chk2" />
<input type="checkbox" id="chk3" value="chk3" />
<input type="checkbox" id="chk4" value="chk4" />
<input type="checkbox" id="chk5" value="chk5" />

var ids = "chk1,chk3,chk5";
var lstInstanceIds = ids.split(',');
for (var i=0; i<lstInstanceIds.length; i++) {
    var value = lstInstanceIds[i];
    $('input[value=' + value + ']').attr('checked','checked');
}
于 2010-04-01T16:12:22.890 に答える