簡體   English   中英

JavaScript 表單驗證無法使用 isNaN

[英]JavaScript Form Validation not working using isNaN

我已經更改了我的代碼並添加了 isNaN 以確保信用卡驗證正在檢查是否只輸入了數字,但是它破壞了代碼。

請注意,這只是損壞代碼的代碼片段。 嘗試添加備份和移動代碼。

    var american = document.getElementById("americanInput").value;
    var master = document.getElementById("masterInput").value;
    var visa = document.getElementById("visaInput").value;
    var email = document.getElementById("email").value;
    var errMsg = document.getElementById("errMsg");
    var postcode = document.getElementById("billingPostcode").value;
    var address = document.getElementById("billingAddress").value;
    var suburb = document.getElementById("billingSuburb").value;
    } else if (master.length > 0 && master.length !== 16 && isNaN(master)||
        visa.length > 0 && visa.length !== 16 && isNaN(visa)||
        american.length > 0 && american.length !== 15 && isNaN(american)){
        errMsg.innerHTML = "Please check your card details again";
        return false;
    } else if (postcode.length < 4 || (!postcode.match(/^[0-9]*$/))) {
        errMsg.innerHTML = "Please enter a valid postcode";
        return false;
    } else if (suburb.length < 8 || address.length < 8) {
        errMsg.innerHTML = "Please check your address, to confirm details"
        return false;
    }

代碼應該驗證並給出錯誤消息。

試試下面的代碼。 我使用 isNaN 的“OR”條件而不是“AND”條件。 我假設您正在檢查您的代碼中的信用卡值是否為空/未定義。 如果不是,您需要檢查以確保以下代碼有效。

  var american = document.getElementById("americanInput").value;
  var master = document.getElementById("masterInput").value;
  var visa = document.getElementById("visaInput").value;
  var email = document.getElementById("email").value;
  var errMsg = document.getElementById("errMsg");
  var postcode = document.getElementById("billingPostcode").value;
  var address = document.getElementById("billingAddress").value;
  var suburb = document.getElementById("billingSuburb").value;

  if ((master.length > 0 && (master.length !== 16 || isNaN(master))) || 
            (visa.length > 0 && (visa.length !== 16 || isNaN(visa))) || 
            (american.length > 0 && (american.length !== 15 || isNaN(american)))) {
      alert("Please check your card details again");
    return false;
  } else if (postcode.length < 4 || (!postcode.match(/^[0-9]*$/))) {
              alert("Please enter a valid postcode");
    return false;
  } else if (suburb.length < 8 || address.length < 8) {
          alert("Please check your address, to confirm details");
    return false;
  }

暫無
暫無

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

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