jQuery代码在firefox或chrome选择器值匹配不匹配脚本中不起作用

jQuery代码在firefox或chrome选择器值匹配不匹配脚本中不起作用,jquery,select,drop-down-menu,match,mismatch,Jquery,Select,Drop Down Menu,Match,Mismatch,这段代码得到了一些人的帮助。在JSFIDLE中工作得很好,但是当我尝试在本地针对一些实时代码运行它时,它失败了。。。我已经用它工作了5个小时,我看不出可能缺少什么。我添加了jquery脚本、样式容器和表单/表结构 <script type="text/javascript"> $(document).ready(function() { "use strict"; $('#addForm').bind('change', function(evt) { $('td.mism

这段代码得到了一些人的帮助。在JSFIDLE中工作得很好,但是当我尝试在本地针对一些实时代码运行它时,它失败了。。。我已经用它工作了5个小时,我看不出可能缺少什么。我添加了jquery脚本、样式容器和表单/表结构

<script type="text/javascript">
$(document).ready(function() {
"use strict";

$('#addForm').bind('change', function(evt) {
    $('td.mismatch', this).removeClass('mismatch');

    var selects = $('select', this);
    $(selects).each(function() {
        var that = this;
        $(selects).not(this).each(function() {

            // we have a similar select
            if ($(this).val() !== '' && $(this).val() === $(that).val()) {
                // now compare inputs
                var
                    thisInputs = $('#grouperCost , #casePackForGroups', $(this).closest('tr')),
                    thatInputs = $('#grouperCost , #casePackForGroups', $(that).closest('tr'));

                $(thisInputs).each(function(i) {
                    if ($(this).val() !== $(thatInputs).eq(i).val()) {
                        $(this).closest('td').addClass('mismatch');
                        $(thatInputs).eq(i).closest('td').addClass('mismatch');
                    }
                });
            }
        });
    });
});
}());
</script>

<style>.mismatch {background: #ff9999;}</style>

<form name="form1" ID="addForm" action="array_script.cfm">
<table>
<tr>
    <td>
        <select name="selectA">
            <option id="A" value="">None</option>
            <option id="A" value="A">A</option>
            <option id="A" value="B">B</option>
            <option id="A" value="C">C</option>
        </select>
    </td>
    <td>
        <input ID="grouperCost" type="text" name="price" value="8.99" />
    </td>
    <td>
        <input ID="casePackForGroups" type="text" name="perCase" value="4" />
    </td>
</tr>
<tr>
    <td>
        <select name="selectB">
            <option id="B" value="">None</option>
            <option id="B" value="A">A</option>
            <option id="B" value="B">B</option>
            <option id="B" value="C">C</option>
        </select>
    </td>
    <td>
        <input  ID="grouperCost" type="text" name="price" value="8.98" />
    </td>
    <td>
        <input  ID="casePackForGroups" type="text" name="perCase" value="5" />
    </td>
</tr>
<tr>
    <td>
        <select name="selectC">
            <option id="C" value="">None</option>
            <option id="C" value="A">A</option>
            <option id="C" value="B">B</option>
            <option id="C" value="C">C</option>
        </select>
    </td>
    <td>
        <input  ID="grouperCost" type="text" name="price" value="8.99" />
    </td>
    <td>
        <input  ID="casePackForGroups" type="text" name="perCase" value="4" />
    </td>
</tr>
</table>
</form>

我没有答案,但我在你的代码中发现了一些奇怪的段落

你这样写:

var selects=$'select',这是//选择全部并选择表单元素 $selects.eachfunction{//循环所有元素

为什么要将当前表单添加到select集合

为什么要使用“无类型强制的相等”==运算符?它们是必需的吗

您是否尝试过使用firefox“一步一步”进行调试

为什么不在变量或文本框中编写日志,并将结果与在JSFIDLE上执行的相同代码进行比较


希望有帮助。

你有相同的jquery版本吗?你能粘贴你得到的错误吗?我已经用firebug脚本错误和chrome inspect元素进行了检查。我尝试了很多方法,但我无法让它做任何事情。这可能像一张海报上说的版本混乱,但它是今天创建的代码。事实上,它在fiddl中工作e很特别。我想做的是看看你的下拉列表是否匹配。看看价格和箱子数量,如果有不匹配的错误,或者做一些类似的突出显示。仅此而已,这是一种分组方法,我正在构建类似的产品,可以订购……如果有重复,箱子和价格匹配,将它们分组,这样你就可以看到一个产品来清理一下屏幕。。。。