0

我正在使用 jQuery 尝试创建匹配/不匹配警报。基本上我有一个 nTier 系列的下拉列表和输入字段。

如果用户下拉选择并选择一个值,并且该值与另一个选择组下拉列表匹配。然后我需要去比较价格和 perCase 值并确保匹配。

如果价格不匹配,我需要生成警报...如果案例不匹配,我需要生成警报。

我可以做两个,但我需要这个来聚合并坚持 nTier 数量的选择/价格/案例组,我对如何做到这一点感到困惑。

这是我正在使用的经过清理的简化表格。

<form name="form1" ID="form1">
<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="priceA" type="text" name="price" value="8.99">
</td>
<td>
    <input id="perCaseA" 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="priceB" type="text" name="price" value="8.99">
</td>
<td>
    <input  id="perCaseB" type="text" name="perCase" value="4">
</td>
</tr>
</table>
</form>
4

1 回答 1

1

我确信这应该可以仅使用 jQuery 选择器,但不完全是。呃,好吧。:)

这会选择所有select元素,然后通过根据触发检查它们的值来过滤select(显然xxx[value="xx"]不适用于select)。然后过滤input以下任何匹配select的 s (价格文本框)以确保它与触发select的 following不具有相同的值input。如果您仍然得到匹配项,则说明您存在不一致并需要提醒。

parent().next().children()不幸的是,由于桌子需要相当丑陋的东西。

对于每个案例,嗯,案例,您都需要一个类似的代码。不幸的是,我认为您不能同时检查两者。

$("select").change(function ()
{
    var $this = $(this);

    if ($("select").filter(function () { return $(this).val() == $this.val(); }).parent().next().children("input[value!='" + $this.parent().next().children("input").val() + "']").length != 0)
    {
        // alert
    }
});
于 2011-10-17T14:25:23.023 回答