使用isNaN时JavaScript表单验证不起作用

使用isNaN时JavaScript表单验证不起作用,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我已经更改了代码并添加了isNaN,以确保信用卡验证只检查输入的号码,但它破坏了代码 请注意,这只是已断开代码的一个代码片段。 尝试添加背景和移动代码 var-american=document.getElementById(“americanInput”).value; var master=document.getElementById(“masterInput”).value; var visa=document.getElementById(“visaInput”).value; var

我已经更改了代码并添加了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=document.getElementById(“billingSuburb”).value;
}否则如果(master.length>0&&master.length!==16&&isNaN(master)||
visa.length>0&&visa.length!==16&&isNaN(visa)||
美式.length>0&&american.length!==15&&isNaN(美式)){
errMsg.innerHTML=“请再次检查您的卡详细信息”;
返回false;
}else if(postcode.length<4 | |(!postcode.match(/^[0-9]*$/)){
errMsg.innerHTML=“请输入有效的邮政编码”;
返回false;
}else if(郊区.length<8 | |地址.length<8){
errMsg.innerHTML=“请检查您的地址以确认详细信息”
返回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;
  }
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=document.getElementById(“billingSuburb”).value;
如果((master.length>0&&(master.length!==16|isNaN(master)))|
(visa.length>0&(visa.length!==16|isNaN(visa)))|
(american.length>0&(american.length!==15 | | isNaN(美国))){
提醒(“请再次检查您的卡详细信息”);
返回false;
}else if(postcode.length<4 | |(!postcode.match(/^[0-9]*$/)){
警报(“请输入有效的邮政编码”);
返回false;
}else if(郊区.length<8 | |地址.length<8){
警报(“请检查您的地址,以确认详细信息”);
返回false;
}

您能显示您尝试的变量值并解释您看到的情况吗?
isNaN
表示
不是一个数字
;在这种情况下,您应该使用
!isNaN(主)
过滤非数值,为什么不在输入时使用
type=“number”
检查它?