angularjs为电子邮件和手机号码提交单一输入

时间:2016-04-22 06:14:11

标签: angularjs angular-material angularjs-validation

在注册表格中,我有电子邮件和手机号码的单一字段,但它无法正常工作。

<form name="regForm" >
<md-input-container flex md-no-float>
   <input ng-model="vm.form.email" type="text" placeholder="Email or Phone" translate translate-attr-placeholder="REGISTER.EMAIL" name="email or phone" ng-pattern="/^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|\d+$/"  required="true">
   <div ng-messages="regForm.email.$error" ng-show="regForm.email.$touched">
     <div ng-message="required">This field is required</div>
     <div ng-message="email">Your email address is invalid</div>
   </div>
</md-input-container>
</form>

下面的代码显示了模型文件中的模式

userModel.js

var UserSchema = new Schema({
   name: String,
   email: {type: String, required: true, select: true},
   password: {type: String, required: true, select: true},
});

1 个答案:

答案 0 :(得分:2)

您尝试在ng-messagesng-show中引用的字段不存在(name="email"内没有regForm的输入。)

对于您要实现的目标,我使用自定义验证逻辑,例如here。您甚至可以使用docs中描述的自定义验证器。