jQuery提交函数多次添加数据

问题描述 投票:0回答:1

我具有此功能,用于根据某些规则存储项目(凭证代码)...

$("#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次...

javascript jquery form-submit submit-button
1个回答
0
投票

似乎您每次尝试后都需要重置jsonObj

© www.soinside.com 2019 - 2024. All rights reserved.