当前位置: 代码迷 >> JavaScript >> 不满足 JavaScript 条件
  详细解决方案

不满足 JavaScript 条件

热度:76   发布时间:2023-06-05 09:30:22.0

我已经为订阅表单创建了以下代码,并且除此之外,它在大多数情况下都可以正常工作,但是以下条件似乎不起作用:

if (subFieldUpdated === true && subValidEmail === true) {
      $("#modEmailSub, #modFNameSub, #modLNameSub").val("");
    }

发生的事情是,当 subValidEmail 输入正确时,它会清除所有其他输入的数据,这让我相信 subFieldUpdated === true 条件没有被正确选择?

我正在寻找的是,一旦输入了所有字段并且存在有效的电子邮件,表单才会清除值。

任何建议/建议都会很棒,因为我现在已经尝试了一些东西,但没有运气。

$("#modSubCard").submit(function() {

var modSubField = ["#modEmailSub", "#modFNameSub", "#modLNameSub"];

$("#modEmailSub, #modFNameSub, #modLNameSub").removeClass("border-red");

contactValid(modSubField);

function contactValid(field) {
  var subFieldUpdated = true;
  var subValidEmail = true;
  for (var i = 0; i < field.length; i++) {
    if ($(field[i]).val() == "") {
      $(field[i]).addClass("border-red");
      subFieldUpdated[i] = false;
    }
    if (!validateEmail($("#modEmailSub").val())) {
      $("#modEmailSub").addClass("border-red");
      subValidEmail = false;
    }
    if (subFieldUpdated === true && subValidEmail === true) {
      $("#modEmailSub, #modFNameSub, #modLNameSub").val("");
    }
  }
}
});

使用下面的代码。 它会为你工作。

var modSubField = ["#modEmailSub", "#modFNameSub", "#modLNameSub"];

$("#modEmailSub, #modFNameSub, #modLNameSub").removeClass("border-red");

contactValid(modSubField);

function contactValid(field) {
  var subFieldUpdated = 0;
  var subValidEmail = true;
  for (var i = 0; i < field.length; i++) {
    if ($(field[i]).val() == "") {
      $(field[i]).addClass("border-red");
      subFieldUpdated = subFieldUpdated + 1;
    }
    if (!validateEmail($("#modEmailSub").val())) {
      $("#modEmailSub").addClass("border-red");
      subValidEmail = false;
    }
    if (subFieldUpdated === 0 && subValidEmail === true) {
      $("#modEmailSub, #modFNameSub, #modLNameSub").val("");
    }
  }
}
});
  相关解决方案