如何仅在字段为$dirty时应用ng模式
How to apply ng-pattern only when field is $dirty
我有一个输入框,上面有一个用于基本链接验证的ng模式。我们的PM希望我们在用户开始编辑之前,在输入中已经有"http://"文本……然而,我不能只把这个文本放在那里,因为它破坏了ng模式验证,因此不会出现。
<input type="text" ng-model="$parent.emailData.setting.button[2].link"
name="button2link"
ng-class="{invalid: step3Form.button2link.$invalid}"
ng-pattern="link_pattern"/>
作为参考,link_pattern定义为
$rootScope.link_pattern = /(https?:'/'/)(www)?[A-Za-z0-9.'-@_~]+'.[A-Za-z]{2,}(:[0-9]{2,5})?('/[A-Za-z0-9'/_'-.~?&=]*)*/
我正在重新表述我的问题以供澄清(这不是我担心的风格,已经奏效了)有没有一种方法可以让我的输入字段中有真正的文本(而不是占位符)"http://",并且仍然有链接模式验证
当用户看到输入框时,我希望文本"http://"在那里(现在它只是一个占位符),这样他们就不必自己键入它。
您可以尝试:
ng class="{无效:(step3Form.button2link.$dirty&step3Form.button2link.$error.pattern)}"
我创建了一个plunker,它将帮助您。
http://plnkr.co/edit/GVAdjcjcYczmcmzoCqoF
<form role="form" name="signUpForm" class="form-horizontal">
<div class="form-group">
<label for="url" class="col-sm-4 control-label">URL</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="url" id="url" placeholder="Enter last name"
ng-model="user.lastName" required="true" ng-pattern="/(https?:'/'/)(www)?[A-Za-z0-9.'-@_~]+'.[A-Za-z]{2,}(:[0-9]{2,5})?('/[A-Za-z0-9'/_'-.~?&=]*)*/">
<span ng-show="signUpForm.url.$dirty && signUpForm.url.$error.required">
<small class="text-danger">Please enter valid URL.</small>
</span>
<span ng-show="signUpForm.url.$dirty && signUpForm.url.$error.pattern">
<small class="text-danger">URL should have 2 to 25 characters.</small>
</span>
</div>
</div>
</form>
http://jsfiddle.net/KGd8K/839/
<div ng-app ng-controller="formCtrl">
<form name="myForm" ng-submit="onSubmit()">
<input type="number" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" required /> <span ng-show="{invalid: (myForm.price_field.$dirty && myForm.price_field.$error.pattern)}">Not a valid number!</span>
<input type="submit" value="submit" />
</form>
</div>
相关文章:
- ng应用程序使脚本无限运行
- 如何正确应用Angularjs ng repeat
- Angular ng控制器与ng应用程序冲突
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 在AngularJS中的另一个ng应用程序中使用来自一个ng程序的Cookie值
- 如何仅在字段为$dirty时应用ng模式
- 如何应用 ng-注释,然后在 gulp-if 中丑化
- 动态添加数据时如何应用 ng 类 (?)
- 未应用NG重复过滤器
- 如何在页面加载前应用 ng-单击
- 应用 ng 重复后从输入中删除的样式
- 应用ng类来计算P标记内的不同表达式
- 仅在鼠标悬停时应用ng鼠标悬停
- 当应用ng模型过滤器时,ng在加载时重复清空
- 应用ng-pressstart和ng-pressend指令后,Angularjs ng-click不起作用
- 有条件地应用ng类
- 对无效的返回值应用ng类
- 发生状态变化时不应用ng类
- 如何在同一个输入字段中应用ng-focus和ng-change
- 使用 true / false 应用 ng 类