Javascript 在更改时验证用户名

Javascript 在更改时验证用户名,javascript,onchange,Javascript,Onchange,我试图在我的jsp页面上验证我的用户名。基本上,我是想看看是否有匹配的域名我想重定向到其他一些网址。下面是我的功能 function validateName() { var UserName=document.getElementById('Username').value; if (UserName == "@test.com") { window.location="http://test.test.com"; } else if

我试图在我的jsp页面上验证我的用户名。基本上,我是想看看是否有匹配的域名我想重定向到其他一些网址。下面是我的功能

function validateName()
{
    var UserName=document.getElementById('Username').value;

    if (UserName == "@test.com")
    {
        window.location="http://test.test.com";
    }
    else if (UserName == "@test1.com")
    {
        window.location="https://test.test1.com";
    }
    return true
}
我的表单有onchange事件

<p>
Enter the UserName: <input id="Username" name="Username" onchange="validateName()"><br>
</p>

输入用户名:

我如何验证这一点?我不认为上面的工作。每当我尝试放置一些“test.com”或“test1.com”时,我都没有看到表单中发生任何事情

如果您能解释一下,我将不胜感激。

请使用
onkeyup=“validateName()”
而不是
onchange=“validateName()”

永远不要使用as
var name
,这是以前用作
对象id
的字符串。。。 您要使用的
对象ID
&
变量名必须不同(不区分大小写)

因此,(请记住,不区分大小写)您的
变量名
与您的
对象ID
冲突,因此在您的函数中,您实际上是在比较:

if ( username == username.value ) {...}
      \            \
       \_ Object    \
                     \_ Object Property
// will never be true
因此,简而言之……
使用其他内容更改函数中的变量名称。

函数validateName()
{
var UserNameToCheck=document.getElementById('Username').value;
if(UserNameToCheck==“@test.com”)
{
警报(“http://test.test.com");
//window.location=”http://test.test.com";
}
else if(UserNameToCheck==“@test1.com”)
{
警报(“http://test.test1.com");
//window.location=”https://test.test1.com";
}
返回真值
}

输入用户名:

很抱歉,问题是。我如何验证这一点。我不认为上面的工作。当我尝试放置一些test.com或test1.com时,我看不到表单中发生任何事情。如果您能对此有所了解,我们将不胜感激。只有当输入字段失去焦点时,更改事件才会触发……是否您正在检查“@test1.com”的代码是否相等,但您正在测试“test1.com”?这些字符串彼此不相等,因此不会发生任何事情。我尝试完全像这样@test.com验证onchange是否触发。不起作用,我试过了。这也不管用。如果我在函数中有一条警告消息。我可以看到它在onchange事件中工作。但除此之外,我看什么都没有发生。我试图删除警报,并试图在System.out中打印用户名。我也没有看到console中出现任何问题。为什么不添加console.log来检查是否工作。我发现了问题。不知何故,问题在于函数名。它正在与其他人产生一些冲突。所以我改变了函数名。现在它运行良好。一个简单的问题。用户名通常类似于aish@test.com如何仅验证域。基本上我想检查域名和重定向,而不是用户名。是
username
用户
email
then吗?。。在这种情况下,您可以使用拆分函数,如:
var host=UserName.split(“@”)并在验证中使用:
主机[1]
进行访问。(主机[0]是at之前的字符串,主机[1]之后的所有内容,等等…)我尝试了这个。无法工作。函数domainCheck(){//alert(“test”);var uname=Username.split(“@”);System.out.println(主机[1]);if(uname[1]=“test.com”){window.location=“}否则if(uname[1]=“test1.com”){window.location=”“}返回true;}基本上,我注意到当我定义了一个var,然后进行上面的验证时,它是不起作用的。但是我看到这个工作很好。函数domainCheck(){//var host=Username.split(“@”);//System.out.println(host[1]);if(Username.value==“test.com”){window.location=”“;}else if(Username.value==”test1.com“{window.location=”“;}返回true;}感谢它终于起作用了。我做错了什么。你的建议很有效。
if ( username == username.value ) {...}
      \            \
       \_ Object    \
                     \_ Object Property
// will never be true