0

很抱歉提前冗长,但我有一个持续的问题,尽管之前的帖子提供了很大的帮助,这里列出:

http://bit.ly/11aBzBV

话虽如此,我已经修改了我的代码以检查是否已选中两个框。这是我的代码的链接:

http://jsfiddle.net/UsraB/5/

这里的基本代码:

$(function () {
    $('tr').on('change', '.AIR', function () {
        console.log(this.checked)
        if (!$(this).closest('td').siblings('td').find('.HEAD').prop('checked')) {
            alert("HEAD has to be checked if AIR is to be checked.\nPlease go back and check HEAD.");
            $(this).prop('checked', !this.checked);
            return false;
        }
    });

    $('tr').on('change', '.HEAD', function () {
        console.log(this.checked)
        if ($(this).closest('td').siblings('td').find('.AIR').is(':checked')) {
            alert("HEAD has to be checked if AIR is to be checked.\nPlease leave HEAD checked.");
            $(this).prop('checked', !this.checked);
            return false;
        }
    });
});

<table>
    <tr class="row">
        <td>Store 1</td>
        <td>
            <input type="checkbox" value="" name="" />Foo</td>
        <td>
            <input type="checkbox" value="" name="" class="HEAD" />HEAD</td>
        <td>
            <input type="checkbox" value="" name="" />Do</td>
        <td>
            <input type="checkbox" value="" name="" class="AIR" />AIR</td>
        <td>
            <input type="checkbox" value="" name="" />Me</td>
    </tr>
    <tr class="row">
        <td>Store 2</td>
        <td>
            <input type="checkbox" value="" name="" />Foo</td>
        <td>
            <input type="checkbox" value="" name="" class="HEAD" />HEAD</td>
        <td>
            <input type="checkbox" value="" name="" />Do</td>
        <td>
            <input type="checkbox" value="" name="" class="AIR" />AIR</td>
        <td>
            <input type="checkbox" value="" name="" />Me</td>
    </tr>
</table>

如果用户检查了 AIR,则会弹出一个警报并告诉用户确保检查了 HEAD。如果用户适当地检查了 AIR 和 HEAD,然后用户尝试取消选中 HEAD,则警报将通知用户让 HEAD 保持选中状态。

这在 Chrome、Firefox(最早 16 版)和 IE10 中运行良好。由于某种原因,它不适用于 IE8 或 IE9 或 IE10 兼容性。似乎根本没有发生 jquery 检查。我什至将上面提到的相同 jsfiddle 链接带入了跨浏览器模拟器,并且代码在 IE8/9 环境中不起作用。当我尝试调试我的代码时,运行开发者工具似乎会触发它,但没有其他东西真的很清楚。是什么赋予了?我错过了什么?

此外,当在 Firefox 中运行时,jquery 将循环遍历每个警报上的所有复选框,以计算行中复选框的数量(jsfiddle 有 6 个;生产代码有 5 个)。我能够通过返回 false 来停止它,但不确定这是否正确。

关于在哪里修复我的代码的任何想法?有没有基本的 javascript 替代品?我还在学习 jquery/javascript,所以这对我来说都是新的。非常感谢您的帮助;谢谢!

4

0 回答 0