我有一个输入框,上面有一个ng-pattern用于基本链接验证。 我们的PM希望我们拥有' http://'在用户开始编辑之前,文本已经在输入中...但是我不能将此文本放在那里,因为它会中断ng-pattern验证,因此不会显示。
<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\/_\-.~?&=]*)*/
我正在重述我的问题以澄清(它不是我担心的样式,已经有效) 我有没有办法让真正的文字(不是占位符)&#39; http://&#39;在我的输入字段中仍然有链接模式验证
当用户看到输入框时,我想要文本&#39; http://&#39;在那里(现在它只是一个占位符)所以他们不必自己打字。
答案 0 :(得分:1)
您可以尝试:
ng-class =“{invalid:(step3Form.button2link。$ dirty&amp;&amp; step3Form.button2link。$ error.pattern)}“
答案 1 :(得分:1)
我已经创建了一个可以帮助你的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>
答案 2 :(得分:0)
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>