Правильно сравните значения в массивах с jQuery - PullRequest
0 голосов
/ 13 апреля 2020

Прошу помощи в правильном подходе к проверке форм с массивами. Прошу помощи в правильном подходе к проверке форм с массивами. Все коды значительно усечены для облегчения восприятия и определения правильных шагов. есть форма в полях которой данные из модальных:

 <form>
    <table>
        <button type="button" href="#ModalBox">Select</button>
        <tbody id="tbody">
            <tr class="addrow">
                <td><input type="text" id="prod_name" name="prod_name[]"></td>
                <td><input type="text" id="new_quantity" name="new_quantity[]"></td>
                <td><input type="hidden" id="old_quantity" name="old_quantity[]"></td>
                <td><button>Delete row</button></td>
            </tr>
        </tbody>
    </table>
    <button type="submit">Send</button>

</form>

в модальном окне поиска из базы данных

<div id="ModalBox">
<input id="search">
<table>
    foreach ($data as $row) {
    <tr>
        <td><input id="modal_search_name" value="' .$row->name. '"</td>
        <td><input id="modal_search_old_quantity" value="'. $row->old_quantity.'"</td>
        <td>
            <button name="select" onclick="select()">Select</button>
        </td>
    </tr>
    }?>
</table>

скрипт добавляет строку к форме, заполняет ее. А теперь проблема - нужно проверить, что номер поля «количество» из базы данных больше или равен номеру, введенному в форму.

 <script>
    var i = 1;

    function select() {
        var name = $('#modal_search_name').val(),
            old_quantity = $('#modal_search_old_quantity').val();
            new_quantity = $('#modal_search_new_quantity').val();

        $('.addrow').children().children('.prod_name').val(name);
        $('.addrow').children().children('.quantity').val(quantity);

        $('#tbody').append('<td><input type="text" id="prod_name" name="prod_name[]"></td>\n' +
            '                <td><input type="text" id="new_quantity" name="new_quantity[]"></td>\n' +
            '                <td><input type="hidden" id="old_quantity" name="old_quantity[]"></td>\n' +
            '                <td><button>Delete row</button></td>')


        $('#new_quantity').focusout(function () {
            var new_quantity = $('#new_quantity').val(),
                old_quantity = $('#old_quantity').val(),

                $result = old_quantity - new_quantity,
                $index;

            for ($index = 0; $index < new_quantity.length; ++$index) {
               if($result<0) {
                   alert($sale_prod_quantity);
               }
            }

    }
</script>

Скрипт проверяет только первую строку , Использовал несколько вариантов, не смог найти решение. Проверка на стороне сервера не подходит. Ряды могут быть неограниченными. Спасибо за любые комментарии и идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...