以下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());
})
答案 0 :(得分: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);
})