1

似乎以下 HTML 和 jQuery 事件在 Internet Explorer 中无法按预期工作。在 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 回答