Javascript 表单验证只工作一次

脚本:NewsletterScript.js


function formValidation() {

    var fname = document.getElementById('firstName').value;

    var lname = document.getElementById('lastName').value;

    var pnumber = document.getElementById('phoneNumber').value;

    var email = document.getElementById('e-mail').value;

  if (FirstName(fname)) {

  }

  if (LastName(lname)) {

  }

  if (Country(country)) {

  }

  if (Email(email)) {

  }

  return false;

}

/*first name input validation*/

function FirstName(fname) {

  var message = document.getElementsByClassName("error-message");

  var letters = /^[A-Za-z]+$/;

  if ( fname =="" || fname.match(letters)) {

    text="";

    message[0].innerHTML = text;

    return true;

  }

  else {

    text="First name should contain only letters";

    message[0].innerHTML = text;

    return false;

  }

}

/*last name input validation*/

function  LastName(lname) {

  var message = document.getElementsByClassName("error-message");

  var letters = /^[A-Za-z]+$/;

  if ( lname =="" || lname.match(letters)) {

    text="";

    message[1].innerHTML = text;

    return true;

  }

  else {

    text="Last name should contain only letters";

    message[1].innerHTML = text;

    return false;

  }

}

我试图让这个验证循环直到满足条件,目前这只工作一次,如果再次单击按钮,它会提交。下面的按钮。


由于脚本太长,我无法上传所有脚本,但它刚刚获得了其他验证,例如电话号码等,我们将不胜感激,干杯!


慕莱坞森
浏览 126回答 2
2回答

小唯快跑啊

如果您想要的是仅当四个验证函数返回 true 时才formValidation()返回,您应该这样写,而不是放置空的 if 语句:truereturn FirstName(fname) && LastName(lname) && Country(country) && Email(email);formValidation()如果其中一个返回 false,这种方式将返回 false

狐的传说

您应该考虑在提交按钮上使用form onsubmit代替。onclick代替:<input class="button" type="submit" value="Submit" name="submit" onClick="formValidation()" />考虑使用表单提交并且不要忘记return关键字:<form onsubmit="return formValidation();" > /* ... */ </form>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript