我正在尝试使用angular + bootstrap从this文章中做出示例。我有这个工作代码:
<div ng-controller="Ctrl">
<br>
<hr>
<form name="signup_form" novalidate ng-submit="signupForm()">
<fieldset>
{{' signup_form.submitted \''+signup_form.submitted+ '\' ' }}<br>
{{' submitted \''+submitted+ '\' ' }}<br>
{{' $scope.signup_form.$valid \''+signup_form.$valid+ '\'' }}
<div class="control-group" ng-class="{error: signup_form.name.$dirty && signup_form.name.$invalid}">
<legend>Signup</legend>
<div class="row">
<div class="span12">
<label>Your name</label>
<input type="text"
placeholder="Name"
name="name"
ng-model="signup.name"
ng-minlength=3
ng-maxlength=20 required/>
</div>
</div>
</div>
<button type="submit" class="button radius">Submit</button>
</fieldset>
</form>
</div>
问题是:
这段代码:
<div class="control-group" ng-class="{error: signup_form.name.$dirty && signup_form.name.$invalid}">
看起来不太好看。我觉得这样做是不好的做法。怎么可能更容易和正确?
如果我按下输入字段,我会立即得到红色边框。 我发现这个问题github.com/twbs/bootstrap/issues/1675,但它是一个非常古老的线程。 在空场点击时避免这个红色框的最佳和正确的方法是什么?
欢迎任何整体代码建议。 TY! )
答案 0 :(得分:0)
我在我创建的表单中做过这样的事情:
<div class="form-group col-md-3 input-group-lg" ng-class="{true: 'has-error',false: 'is-required'}[createContacts.proposer.$dirty && createContacts.proposer.$invalid]">
<label class="control-label" for="proposer">Name *</label>
<input type="text" class="form-control" name="proposer" id="proposer" placeholder="First & Last Name" ng-model="proposer.name" required>
<span class="help-block" ng-show="createContacts.proposer.$dirty && createContacts.proposer.$error.required">Proposer's name is required.</span>
</div>
ng-class="{true: 'has-error',false: 'is-required'}[createContacts.proposer.$dirty && createContacts.proposer.$invalid]"
is-required
类不是引导程序的一部分,它是我创建的一个类,用于在不出错时对所需对象进行颜色编码。