0

私はjQueryを使用して、一致/不一致アラートを作成しようとしています。基本的に、nTierシリーズのドロップダウンと入力フィールドがあります。

ユーザーが選択をドロップダウンして値を選択し、その値が別の選択グループのドロップダウンと一致する場合。次に、価格とperCaseの値を比較して、一致するものがあることを確認する必要があります。

価格が一致しない場合は、アラートを生成する必要があります...ケースが一致しない場合は、アラートを生成する必要があります。

私は2つを行うことができますが、nTierの量の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>
4

1 に答える 1

1

これはjQueryセレクターを使用するだけで可能になるはずですが、完全ではありません。まぁ。:)

これにより、すべてのselect要素が選択され、トリガーに対してそれらの値がチェックされることでフィルタリングされますselect(明らかにxxx[value="xx"]では機能しませんselect)。次にinput、一致する次のs(価格テキストボックス)がフィルタリングされ、トリガーの次のselect値と同じ値がないことを確認します。それでも一致する場合は、不整合があり、アラートが必要です。selectinput

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 に答える