У меня есть эта функция, которую я использую для хранения предметов (кодов ваучеров) на основе некоторых правил ...
$("#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}]
, что хорошо ...
Проблема в том, что:
попытка - Пользователь вводит что-то вроде 1234 и пытается отправить форму, но на основании правил o ее элемент не хранится в jsonObj
попытка - пользовательский тип ggghhh55 также не сохранен в jsonObj
пользователь, наконец, отправил правильный серийный номер (123456789a), но затем его добавили 3 раза такУ меня есть это:
[{serial: "123456789a", pin: undefined}, {serial: "123456789a", pin: undefined}, {serial: "123456789a", pin: undefined}]
Почему? Зачем отправлять на форму добавить элемент 3 раза ... следует добавить его только один раз ...
Наконец, когда пользователь вводит правильный серийный номер, то форма отправляется количество предыдущих попыток ... так что если есть 3 неудачныхФорма попытки подана 3 раза ...