【问题标题】:jQuery submit function add data several timesjQuery提交函数多次添加数据
【发布时间】:2019-12-01 21:48:18
【问题描述】:

我有这个功能,用于根据一些规则存储物品(优惠券代码)......

$("#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);

如您所见,根据我在 IF 条件下编写的 rexEg 规则,我将一个项目添加到 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】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-30
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      相关资源
      最近更新 更多