1

Internet Explorer では、次の HTML および jQuery イベントが期待どおりに動作しないようです。IE では、ラジオ ボタンがクリックされるたびに (現在選択されている場合でも)、イベントが発生します。Chrome では正常に動作します。IE を修正するためのアイデアはありますか?

<input id="system-open" type="radio" name="system-closure" value="false" checked="">Open
<input id="system-close" type="radio" name="system-closure" value="true">Close
$("input[name=system-closure]:radio").change(function () {
    alert($(this).val());
})
4

1 に答える 1

2

含まれている要素のデータ属性に以前の値を保存して、選択が実際に変更されたかどうかを確認できます。これを試して:

<div class="radio-container">
    <input id="system-open" type="radio" name="system-closure" value="false" checked="">Open
    <input id="system-close" type="radio" name="system-closure" value="true">Close
</div>
$("input[name=system-closure]:radio").change(function () {
    var $radio = $(this);
    var $container = $radio.closest('.radio-container');
    var currentValue = $radio.val();
    var oldValue = $container.data('old-value');

    if (currentValue != oldValue) {
        // the selection has been changed, do something...
        alert($(this).val());
    }

    $container.data('old-value', currentValue);
})
于 2013-08-01T09:39:28.217 に答える