我具有此功能,用于根据某些规则存储项目(凭证代码)...
$("#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次...
似乎您每次尝试后都需要重置jsonObj