0

我做了一个功能,您只能输入字母、@ 和 (.) 句点。我如何设置我只能输入一次“@”符号,然后它会自动添加“email.com”。例如,我输入我的电子邮件,如“stackoverflow”,在我点击“@”后,它会自动添加“email.com”,并且“@”只能输入一次..

这是我的代码

function fnEmailAlpha(e)
{
    var key;
    if(window.event)
       key = window.event.keyCode;     //IE
    else
       key = e.which;                  //Firefox
    if ((key>96 && key<123) || (key>64 && key<90) || key==46 || key == 64 || key == 95)
    {
       return true;
    }
    else
    {
       return false;
    }
 }
4

3 回答 3

1

如果您正在尝试验证电子邮件 ID,那么我建议使用regex

你可以做的是:

var reg=/^[a-zA-Z]+[\@]{1}[a-zA-Z]+[\.]{1}[a-zA-Z]+$/ig;
if(document.getElementById('email').value.match(reg)!=null)
{
   alert('Match!');
}
于 2013-09-27T05:15:18.547 回答
1

试试这个:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">

        function validate(textbox) {
            //Handle Keycodes to return without action in case of arrow keys, backspace etc.
            var email = 'email.com';
            var val = textbox.value;
            var ind = textbox.value.indexOf('@');
            if (ind > -1)
                textbox.value = val.substring(0, ind + 1) + email;
        }
    </script>
</head>
<body>
    <form id="frm" name="frm">
        <input type="text" id="txtInput" name="txtInput" onkeyup ="validate(this)" />
    </form>
</body>
</html>
于 2013-09-27T05:25:38.303 回答
0

如果您需要 JavaScript 解决方案

function validateForm()
{
var x=document.forms["myForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Not a valid e-mail address");
  return false;
  }
}

或者如果您使用的是 HTML5

 E-mail: <input type="email" name="email" autocomplete="off">
于 2013-09-27T05:27:26.153 回答