javascript - jQuery提交函数多次添加数据
问题描述
我有这个功能,我用来根据一些规则存储物品(凭证代码)......
$("#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}]
很好......
问题是如果:
尝试 - 用户输入类似 1234 的内容并尝试提交表单,但基于 o 规则其项目未存储到 jsonObj
尝试 - 用户类型 ggghhh55 也未存储到 jsonObj
用户最终提交了正确的序列号,例如(123456789a),但随后又添加了 3 次,所以我得到了这个:
[{序列:“123456789a”,引脚:未定义},{序列:“123456789a”,引脚:未定义},{序列:“123456789a”,引脚:未定义}]
为什么?为什么提交表单添加项目3次...应该只添加一次...
最后,当用户输入正确的序列号时,表单会提交之前的尝试次数......所以如果有 3 次不成功的尝试,表单会提交 3 次......
解决方案
似乎您需要在每次尝试后重置您的 jsonObj
推荐阅读
- python - 尝试减少重复性 - 除了
- python - 如何仅从 extcolor 获取 RGB 值
- python - pd.get_dummies 是否与仅在 statsmodel ols 中包含分类变量相同?
- r - 带有正负显着项数的横截面回归表输出
- mysql - 我需要帮助来优化我的数据库架构
- c# - 如何在游戏开始时启动的预制件上的检查器中分配游戏对象变量?
- php - 使用 PHP 查询多维 Json?
- php - discord oauth2 api 调用返回“405:不允许的方法”
- c# - IAM 角色不信任 Comprehend Medical 服务主体
- python - TypeError: 'int' object is not iterable error in python3.9.1