我正在尝试检查HTML输入表单,看它是否包含@符号。
HTML:
<input id="emailCheck" type="text" name="uid" />
<input type="button" value="Continue" onClick="continuePlease()" />
<br>
<p id="invalidEmail"></p>
使用Javascript:
var at = document.getElementById("emailCheck").value.indexOf("@");
function continuePlease() {
if (at == -1) {
document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
} else {
changeData();
}
}
function changeData() {
document.getElementById("title").innerHTML = "<font color=#33FF00> Information Confirmed </font>";
document.getElementById("lock").innerHTML = "<font color=red>This Account is now locked.</font>";
document.getElementById("time").innerHTML = "<font color=white> You will have 30 minutes to send the provided wallet address the correct amount of Bitcoin or the account will unlock again. </font>";
document.getElementById("daemon").innerHTML = "<font color=white> Our Bit-Daemon is watching the address 24/7, once a payment is made, the contents of the account will be sent to your Email. Thanks, Paypal Trader.</font>";
document.getElementById("pig").innerHTML = "";
document.getElementById("cow").innerHTML = "";
document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
}
发生的事情是,当它执行函数continuePlease()时,它会执行IF和ELSE中的代码。 它应该做一个,而不是两个。
我想我需要一种更好的方法来检查@符号。
答案 0 :(得分:1)
您可以使用这个方便的功能来测试:
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}
您可以使用以下方式传递电子邮件:
var email = document.getElementById("email").value;
此功能将返回true或false,具体取决于您提供的电子邮件字符串。
答案 1 :(得分:1)
将at
作业移至continuePlease
的第一行。我不认为它正在做两件事它总是在做else块并检查else块的最后一行与if块是一样的。
答案 2 :(得分:1)
这样做。它应该工作。
function continuePlease() {
var at = document.getElementById("emailCheck").value.indexOf("@");
if (at == -1) {
document.getElementById("invalidEmail").innerHTML = "<font color=red>Please enter a valid email.</font>";
} else {
changeData();
}
}