Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建jQuery nTier选择比较脚本?_Jquery_Forms_Compare_Onselect - Fatal编程技术网

如何创建jQuery nTier选择比较脚本?

如何创建jQuery nTier选择比较脚本?,jquery,forms,compare,onselect,Jquery,Forms,Compare,Onselect,我正在使用jQuery尝试创建匹配/不匹配警报。基本上,我有一系列的下拉列表和输入字段 如果用户下拉选择并选择一个值,并且该值与另一个选择组下拉列表相匹配。然后我需要去比较价格和perCase值,确保它们匹配 如果价格不匹配,我需要生成警报…如果案例不匹配,我需要生成警报 我可以做两件事,但我需要将这件事汇总并持续到更多的select/price/case组中,我对如何做到这一点感到困惑 这是我正在使用的一个经过清理的简化表单 <form name="form1" ID="form1"&g

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

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

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

我可以做两件事,但我需要将这件事汇总并持续到更多的select/price/case组中,我对如何做到这一点感到困惑

这是我正在使用的一个经过清理的简化表单

<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>

没有一个
A.
B
C
没有一个
A.
B
C

我确信仅使用jQuery选择器就可以实现这一点,但不完全是这样。啊,好吧

这将选择所有的
select
元素,然后根据触发的
select
(显然
xxx[value=“xx”]
不适用于
select
)检查它们的值来进行过滤。然后过滤任何匹配的
select
s(价格文本框)后的
input
,以确保其值与触发
select
后的
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
    }
});
伟大的很高兴这对你有帮助——希望解释也有意义。:)