Как создать сценарий сравнения выбора JQuery nTier? - PullRequest
0 голосов
/ 17 октября 2011

Я работаю с jQuery, пытаясь создать предупреждение о совпадении / несовпадении. В основном у меня есть nTier ряд выпадающих и полей ввода.

Если пользователь выбрасывает опцию выбора и выбирает значение, и это значение соответствует другой выпадающей группе выбора. Затем мне нужно пойти и сравнить цены и значения perCase и убедиться, что есть совпадение.

Если цены не совпадают, мне нужно сгенерировать предупреждение ... Если дела не совпадают, мне нужно сгенерировать предупреждение.

Я могу сделать два, но мне нужно это для агрегирования и сохранения по большому количеству групп выбора / цены / случая, и я не понимаю, как это сделать.

Вот упрощенная форма, с которой я работаю.

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

1 Ответ

1 голос
/ 17 октября 2011

Я был уверен, что это возможно, используя селекторы jQuery, но не совсем.Ах хорошо.:)

Это выбирает все элементы select, а затем фильтрует их, сверяя их значения с активацией select (очевидно, xxx[value="xx"] не работает для select).input, следующий за любым соответствующим select s (текстовое поле цены), затем фильтруется, чтобы удостовериться, что оно не имеет того же значения, что и срабатывание 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
    }
});
...