簡體   English   中英

不滿足 JavaScript 條件

[英]JavaScript condition not being met

我已經為訂閱表單創建了以下代碼,並且除此之外,它在大多數情況下都可以正常工作,但是以下條件似乎不起作用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM