IE7で追加するときにラジオボタンをチェックする方法はありますか?
すべてのブラウザで機能しているように見えますが、IE6,7で機能しているようには見えません。なぜ機能しないのか、私にはまったくわかりません。
_var $itemVariantRowRadio = $("<input/>")
.attr("type", "radio")
.attr("name", "itemvariant")
.addClass("itemvariant")
.val('whatever');
$itemVariantRowRadio.attr('checked', 'checked');
$itemVariantRow.append($itemVariantRowRadio)
_
IE6/7でconsole.log($itemVariantRowRadio.attr('checked')
を実行すると、TRUEに設定されていると表示されますが、ラジオが実際にチェックされないか、チェック済みとしてピックアップされません。
悪夢!他の誰かがこれに遭遇し、何らかの修正をしていますか?
JQuery> = 1.6の場合:
次のようにprop
を使用します: 。prop()vs .attr()
$itemVariantRowRadio.prop('checked', true);
JQuery <1.6の場合:
$itemVariantRowRadio.attr('checked', true);
また:
次のように要素を作成してみてください:
var $itemVariantRowRadio = $("<input/>",{
type: 'radio',
name: 'itemvariant',
class: 'itemvariant',
checked: true,
value: 'whatever'
});
$itemVariantRow.append($itemVariantRowRadio);
フィドルを参照してください: http://jsfiddle.net/maniator/6CDf3/
2つの入力が追加された例: http://jsfiddle.net/maniator/6CDf3/2/
試してください:$itemVariantRowRadio.not(':checked').click().change();
したがって、実際には、ユーザーがマウスで操作するのと同じように、チェックボックスをクリックします。 not(':checked')
は、以前にチェックされていないことを確認します。そして、jQueryクリックはそれだけではそれを行わないので、後でchangeイベントをトリガーします。
MSIEでは、一度作成したtype
要素のinput
を変更することはできません。
http://bugs.jquery.com/ticket/1536 および http://api.jquery.com/jQuery/#jQuery2 を参照してください
作成するだけです:
$('<input type="radio">')
Domに追加した後でchecked属性を適用する場合、クリックイベントをトリガーする必要はありません。 http://jsfiddle.net/XjHUe/2/
<div id='content'></div>
var $itemVariantRowRadio = $("<input/>")
.attr("type", "radio")
.attr("name", "itemvariant")
.addClass("itemvariant")
.val('whatever');
//$itemVariantRowRadio.attr("checked", true);
$("#content").append($itemVariantRowRadio);
$(".itemvariant").attr('checked',true);
var val = $(".itemvariant").attr("checked");
alert(val);