电子邮件验证功能无法与表单按钮一起正常使用

时间:2019-07-15 15:42:47

标签: javascript html forms button email-validation

我正在为我的JS班完成最后的项目。我遇到了一些障碍,并希望获得一些指导。 我希望将输入(所有编码都需要在JS中完成)用于电子邮件并进行验证。如果电子邮件经过验证,则应将输入内容发送到新网页上。如果输入无效,则应该发出警报,然后用户应重新输入正确的电子邮件地址。 这只是项目的一部分。我正在创建让用户输入简历的输入信息,以将其写在新页面上的方法。

使用代码的当前状态,它会弹出警告框,指出电子邮件无效(即使有效)。如果取消验证部分,我已经写了。但是,它会写“ undefined”。

pid=1234

# 300 seconds = 5min
maximum_runtime=300

process_start_time=`ps -o lstart= -p $pid`
current_time=`date +%s`

let diff=${current_time}-${process_start_time}

if [ $diff -gt $maximum_runtime ]
then
    kill -3 $pid
fi

如果有人愿意就这个问题提供建议,我将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

问题很简单,当您实际要测试的是inputEmail时,您将test()作为参数传递给inputEmail.value。下面的演示应该起作用:

const validateEmail = (e, inputEmail) => {
  e.preventDefault();
  if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(inputEmail.value)) {
    console.log(`${inputEmail.value} is a VALID email address :)`);
    return true;
  }
  console.log(`${inputEmail.value} is an INVALID e-mail address. Please fix!`);
  return false;
};

const init = () => {
  var email = document.createElement("p");
  email.innerText = "Enter Email Address:";
  document.body.appendChild(email);

  var inputEmail = document.createElement("input");
  inputEmail.type = "text";
  inputEmail.setAttribute("id", "email");
  document.body.appendChild(inputEmail);

  document.querySelector('form').addEventListener('submit', e => validateEmail(e, inputEmail));
};


init();
<head>
  <title>WEB 115 Final Project</title>
</head>

<body>
  <script src="projectJS.js"></script>
  <br><br>
  <form>
    <input type="submit" value="Create Resume">
  </form>
</body>

答案 1 :(得分:0)

我已经解决了你的问题。现在可以了。检查一下。

var email = document.createElement("p");
email.innerText = "Enter Email Address:";
document.body.appendChild(email);
var inputEmail = document.createElement("input");
inputEmail.type = "text";
inputEmail.setAttribute("id", "email");
document.body.appendChild(inputEmail);

//email validation on click form button from html
function validateEmail() {
    var inputEmail = document.getElementById('email').value; //get email id
    var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    var testRe = re.test(inputEmail);
    testRe;
    if (testRe != true) {
        window.alert("Invalid Email Address. Please Reenter");
    }
    else {
        var openWindow = window.open();
        openWindow.document.write(inputEmail);
    }
}
<!DOCTYPE html>
<html lan= "en">
    <head>
        <title>WEB 115 Final Project</title>
    </head>
    <body>
            <script src= "projectJS.js"></script>
            <br><br>
            <form onsubmit="validateEmail()">
                <input type="submit" value="Create Resume">
            </form>
    </body>
</html>

答案 2 :(得分:0)

添加.value以获得输入电子邮件,如下所示:

var testRe = re.test(inputEmail.value);