2016-08-24 47 views
0

所以我有這個開始日期字段,並且如果開始日期在事件結束日期之後,它將正確顯示錯誤。但是,我想讓表單本身不會提交。我不知道如何通過自定義驗證來阻止表單提交。禁用提交按鈕,除非開始日期在角度表格上的結束日期之前

<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-最大長度,提交按鈕將被禁用。我如何做這個自定義驗證相同?

+0

可能重複[如何驗證日期格式在角度](http://stackoverflow.com/questions/30218987/how-to-validate-date-format-in-angular) –

+0

嗨@DineshDevkota。該問題涉及日期格式。這與檢查一個日期是否在另一個日期之前有關。 – tonestrike

+0

對於這種情況,您可能希望使用自定義驗證,如https://rashimuddin.wordpress.com/2014/08/24/date-range-custom-validation-in-angular-js/。 –

回答

0

這是Naveed的回答。 「儘管您可以將驗證邏輯放在ng-disabled中:ng-disabled =」basicInfoForm。$ invalid & & event.info.date> = event.info.end_date「,最好的做法是創建一個自定義驗證器。

@dinesh和@naveed都幫我弄清楚了。謝謝!

相關問題