2015-03-03 45 views
0

我输入:如何使用AngularJS获取HTML-INPUT-EMAIL?

<input ng-model="email" type="email" id="form-email" name="email" placeholder="Inter email" maxlength="250"> 

当我进入这么久托管:

[email protected]ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooom 

我:

$scope.email // undefined 
document.getElementById("form-email").value //[email protected]ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooom 

但是,当我进入

[email protected]ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooh.com 

我有

$scope.email // [email protected]ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooh.com 

如何解决这个问题?

+0

第一长域是不是一个有效的电子邮件地址,以便角没有得到它的价值。 – A1rPun 2015-03-03 08:07:01

回答

2

这没什么错,第一封电子邮件是无效的,第二封电子邮件是有效的,这就是为什么它被接受。

每个域名由两部分组成。

顶级域名 - 顶级域名(TLD)是位于该点右侧的域名 名称的一部分。最常见的顶级 域名是.COM,.NET和.ORG。其他一些流行的顶级域名 是.BIZ,.INFO,.NAME和.IN等

二级域名 - 。第二级域名是 位于点左侧的域名的一部分。 制作您自己网站的步骤是第二级域名,而 代表互联网背后的组织或实体。秒 级别域名必须在互联网公司注册为 分配的名称和号码(ICANN)认可的注册商。

为什么第一封电子邮件无效?

  • 因为它不包含有效的顶级域名。

这里有互联网顶级域的名单: https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains

为什么是第二电子邮件vaild?

  • 因为它包含有效的顶级域和二级域。
0

您可以验证电子邮件输入与ngPattern指令相结合,模式:

<input type="email" 
    ng-model="email" 
    id="form-email" 
    placeholder="Inter email" 
    maxlength="250" 
    name="myeamail" 
    pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}$" 
    >