如何使jQuery输入验证函数与角度模板一起工作?

如何使jQuery输入验证函数与角度模板一起工作?,jquery,angularjs,twitter-bootstrap,angularjs-ng-model,Jquery,Angularjs,Twitter Bootstrap,Angularjs Ng Model,我使用jQuery函数自动处理表单,并在使用jQuery时显示错误。我也在使用bootstrap3 (function() { // Form Processing $('input').each(function() { var $this = $(this); $this.on('input', function() { if ($this.val().length === 0) { if

我使用jQuery函数自动处理表单,并在使用jQuery时显示错误。我也在使用bootstrap3

(function() {
    // Form Processing
    $('input').each(function() {
        var $this = $(this);
        $this.on('input', function() {
            if ($this.val().length === 0) {
                if ($this.attr('required')) {
                    $this
                        .parent('div.control-group')
                        .addClass('has-error')
                        .end()
                        .siblings('p.text-danger')
                        .empty()
                        .text('This field is required');
                } else {}
            } else {}
        });
    });
})();
基本上,这检查是否需要字段。如果该字段无效,将显示一条简单的错误消息。它也非常好用

以下是一个基本模板,它可以实现这一点:

<div class="control-group>
    <input type="email" required>
    <p class="text-danger"></p>
</div> 

您可以将form或ng form指令与ng messages指令结合使用,以避免将jquery与angular混合使用

范例

<form name="myForm">
  <label>
    Enter your name:
    <input type="text"
           name="myName"
           ng-model="name"
           ng-minlength="5"
           ng-maxlength="20"
           required />
  </label>
  <pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>

  <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert">
    <div ng-message="required">You did not enter a field</div>
    <div ng-message="minlength">Your field is too short</div>
    <div ng-message="maxlength">Your field is too long</div>
  </div>
</form>

输入您的姓名:
myForm.myName.$error={{myForm.myName.$error | json}
您没有输入字段
你的领域太短了
你的领域太长了

Source

您可以将form或ng form指令与ng messages指令结合使用,以避免将jquery与angular混合使用

范例

<form name="myForm">
  <label>
    Enter your name:
    <input type="text"
           name="myName"
           ng-model="name"
           ng-minlength="5"
           ng-maxlength="20"
           required />
  </label>
  <pre>myForm.myName.$error = {{ myForm.myName.$error | json }}</pre>

  <div ng-messages="myForm.myName.$error" style="color:maroon" role="alert">
    <div ng-message="required">You did not enter a field</div>
    <div ng-message="minlength">Your field is too short</div>
    <div ng-message="maxlength">Your field is too long</div>
  </div>
</form>

输入您的姓名:
myForm.myName.$error={{myForm.myName.$error | json}
您没有输入字段
你的领域太短了
你的领域太长了

Source

向所有此类输入添加一个公共类(
必需的
),然后使用委托<代码>$(文档).on('.required',input',function(){…})
。不过,如果您使用的是框架,则应坚持其方法。当angular已经内置了表单验证时,这是完全错误的方法从项目中取出jQuery和bootstrap.js并阅读@charlietfl-我知道,我使用的是
ng disabled=“form$invalid”
,没有显示错误消息,因此这就是原因。为什么不使用
ng消息
api?它建立在角度验证的基础上。即使您不使用,也有
ng if
ng show
向所有此类输入添加一个公共类(
必需的
),然后使用委托<代码>$(文档).on('.required',input',function(){…})。不过,如果您使用的是框架,则应坚持其方法。当angular已经内置了表单验证时,这是完全错误的方法从项目中取出jQuery和bootstrap.js并阅读@charlietfl-我知道,我使用的是
ng disabled=“form$invalid”
,没有显示错误消息,因此这就是原因。为什么不使用
ng消息
api?它建立在角度验证的基础上。即使你不使用,也有
ng if
,或
ng show
我的荣幸:)玩得开心!我的荣幸:)玩得开心!