Функция отправки jQuery добавляет данные несколько раз - PullRequest
0 голосов
/ 02 декабря 2019

У меня есть эта функция, которую я использую для хранения предметов (кодов ваучеров) на основе некоторых правил ...

$("#serial_number").submit(function (e) {
        e.preventDefault();
console.log('started');
        if (param == 'groupon' || param == 'livingsocial') {
            var secretS = $('#serial').val();
            var secretP = $('#pin').val();

            if ((/(?=[a-fA-F0-9]*[a-fA-F])[a-fA-F0-9]{10}/.test(secretS) === true) || (secretS.length == 13)) {


                var s = $('#serial').val();
                var p = $('#pin').val();
                var item = {}
                item["serial"] = s;
                item["pin"] = p;
                item["product_code"] = '74';
                item["promo_code"] = '74';
                item["covers"] = 2;

                jsonObj.push(item);

, как вы можете видеть на основе правила rexEg, которое я пишу в условии IF, я добавляю элемент вjsonObj поэтому, если он действителен, я вставляю в jsonObj элемент.

Если я набираю только один раз правильный серийный номер, основанный на правиле, например 123456789a, все в порядке, и у меня есть [{serial: "123456789a", pin: undefined}], что хорошо ...

Проблема в том, что:

  1. попытка - Пользователь вводит что-то вроде 1234 и пытается отправить форму, но на основании правил o ее элемент не хранится в jsonObj

  2. попытка - пользовательский тип ggghhh55 также не сохранен в jsonObj

  3. пользователь, наконец, отправил правильный серийный номер (123456789a), но затем его добавили 3 раза такУ меня есть это:

    [{serial: "123456789a", pin: undefined}, {serial: "123456789a", pin: undefined}, {serial: "123456789a", pin: undefined}]

Почему? Зачем отправлять на форму добавить элемент 3 раза ... следует добавить его только один раз ...

Наконец, когда пользователь вводит правильный серийный номер, то форма отправляется количество предыдущих попыток ... так что если есть 3 неудачныхФорма попытки подана 3 раза ...

...