2015-04-25 3 views
-1

Я пытаюсь проверить входную форму HTML, чтобы увидеть, содержит ли она символ @.Проверка Javascript @ по электронной почте

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. Он должен делать то или другое, а не то, и другое.

Думаю, мне нужен лучший способ проверить символ @.

ответ

1

переместить at присвоение в качестве первой строки continuePlease. Я не думаю, что он делает то, что он всегда делает блок else и проверяет последнюю строку блока else, что он такой же, как и в блоке.

+0

Большое вам спасибо. Это всегда какая-то глупая ошибка. – Chawbee

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;

Эта функция возвращает истину или ложь в зависимости от которую вы предоставите.

+0

Я заменил бы «email» идентификатором поля ввода текста? – Chawbee

+0

Я только что отредактировал свой ответ, чтобы ответить на этот вопрос. :-) – user99244

+0

Это не отвечает на проблему OP, хотя это просто проверяет электронную почту, используя другой метод. –

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(); 
    } 
} 
Смежные вопросы