禁用提交按钮,除非开始日期在角形式的结束日期之前

时间:2016-08-24 17:43:22

标签: javascript angularjs forms validation

所以我有这个开始日期字段,如果开始日期在事件的结束日期之后,它将正确显示错误。但是,我想这样做,以便表单本身不会提交。我不知道如何使用自定义验证来阻止表单提交。

  <fieldset ng-controller="ConfigCtrl"  show errors>
    <label>Event Start Date</label><sup class="req-field">*</sup>
    <div class=" input-group" ng-class="{'has-error': event.info.date >= event.info.end_date}">
      <input type="text" name="start-date" class="form-control" datetime-picker="dd MMM yyyy HH:mm" datepicker-append-to-body="true" ng-model="event.info.date" max-val="{{event.info.end_date}}" is-open="isOpen[0]"  date-validator ng-focus="openCalendar(0)" required>
      <span class=" input-group-btn">
        <button class="btn btn-default" type="button" ng-click="openCalendar(0)">
          <i class="fa fa-calendar"></i>
        </button>
      </span>
    </div>
  </fieldset>

这是提交按钮的代码:

<button class="btn btn-primary" ng-click="saveEvent(event, 'editBasicInfo');editBasicInfo = !editBasicInfo" ng-disabled="basicInfoForm.$invalid">Submit</button>

如果我对ng-maxlength这样的字段进行了验证,则会禁用提交按钮。如何进行此自定义验证?

1 个答案:

答案 0 :(得分:0)

这是Naveed的回答。 &#34;虽然您可以将验证逻辑放在ng-disabled中:ng-disabled =&#34; basicInfoForm。$ invalid&amp;&amp; event.info.date&gt; = event.info.end_date&#34;,最佳做法是创建自定义验证器。&#34;

@dinesh和@naveed帮我解决了这个问题。谢谢!