Angular + Bootstrap输入验证错误类

时间:2013-10-11 13:02:22

标签: twitter-bootstrap angularjs angular-ui

我正在尝试使用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>

http://jsfiddle.net/cQ324/3/

问题是:

  1. 这段代码:

    <div class="control-group" ng-class="{error: signup_form.name.$dirty && signup_form.name.$invalid}">
    

    看起来不太好看。我觉得这样做是不好的做法。怎么可能更容易和正确?

  2. 如果我按下输入字段,我会立即得到红色边框。 我发现这个问题github.com/twbs/bootstrap/issues/1675,但它是一个非常古老的线程。 在空场点击时避免这个红色框的最佳和正确的方法是什么?

  3. 欢迎任何整体代码建议。 TY! )

1 个答案:

答案 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类不是引导程序的一部分,它是我创建的一个类,用于在不出错时对所需对象进行颜色编码。