2015-04-14 191 views
0

我正在使用angularjs提交一个非常简单的表单... 我必须在我的表单中插入数字代码。该代码必须验证服务器端,调用外部服务。当我得到承诺时,我想检查代码是否正确。 如果代码是不正确的,我想设置一个红色边框的文本框,并显示一条消息......这里的HTMLAngularJs服务器端验证

<input name="code" type="text" style="width:155px;" data-ng-model="Codice" 
    data-ng-required="true" data-ng-pattern="/^(\d){22}$/" data-ng-model-options="{ updateOn: 'mousedown blur' }" /> 

<span data-ng-show="myform.code.$error.pattern" class="error">Codice non valido</span> 

现在我让你看看我在控制器里做

if (response.Result == "1") 
{ 
    myform.code.$error.pattern = true; 
} 

这样,我刚刚看到消息,但文本框的边框保持黑色......所以我tryed:

if (response.Result == "1") 
{ 
    myform.code.$setValidity('mismatch',false); 
} 

但这种方式,即使我修改代码,模型保持“不是val ID“,所以我不能做一个职位了......

任何解决方案? 感谢名单

回答

1

在你的HTML创建自定义的验证一个跨度

<span class="help-block" ng-show="myform.name.$error.ntValidName">Not valid name</span> 

并在控制器中设置这样的有效性,若无效,则

myform.name.$setValidity("ntValidName", false); 

这样,你可以创建自定义的验证

+0

谢谢..我错误的验证名称...在控制器中我称之为“不匹配”..在视图“模式” – Ciccio

+0

雅我看到,但我认为你所显示的html代码是针对第一种情况的,而且你可能已经修改了第二种情况下的html。 – Anita

+0

我只想使用一个跨度......但认为使用两种不同跨度要好得多...... – Ciccio