2017-03-05 20 views
2

我有一個文本輸入設置爲required。該字段是日期範圍選擇器。當日期範圍選擇器的代碼輸入文本時,角度不會將輸入識別爲正在填充。它仍然包含驗證錯誤,說該字段是必需的。有任何想法嗎?我試過$setValidity('required',true);那裏沒有運氣。AngularJS必需的輸入,用代碼設置,無效

我用這個日期範圍選擇器:Link

下面的代碼。首先在HTML端,我輸入:

<input class="form-control" type="text" name="daterange" id="daterange" ng-model="daterange" placeholder="Pick A Date"/> 

然後在JavaScript端我設置的輸入作爲一個日期範圍選擇器

$('input[name="daterange"]').daterangepicker({ 
    "autoApply": true, 
    "autoUpdateInput": false 
}); 

$('#daterange').on('apply.daterangepicker', function(ev, picker) { 
    $('#daterange').val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY')); 
}); 

$('#daterange').on('cancel.daterangepicker', function(ev, picker) { 
    $('#daterange').val(''); 
}); 

我使用一些角度對HTML的一面展現我所有的形式錯誤

<ul> 
    <li ng-repeat="(key, errors) in requestForm.$error track by $index"> <strong>{{ key }}</strong> errors 
     <ul> 
      <li ng-repeat="e in errors">{{ e.$name }} has an error: <strong>{{ key }}</strong>.</li> 
     </ul> 
    </li> 

如果我手動在字段中鍵入它會驗證。但使用日期範圍選擇器它不。

+0

你是使用ui-bootstrap還是純html控制? – Aravind

+0

不完整的信息,分享您的HTML代碼! – Smit

+0

是的,使用引導 – DasPete

回答

0

那麼我終於明白了這一點。問題是日期範圍選取器沒有以角度方式設置值。它是用jQuery做它:

$('#daterange').val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY')); 

通過使用相同的呼叫從日期範圍選取器回來,但使用的角度的方式來設定值:

$scope.daterange = (picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY')); 

驗證就可以拿起。感謝大家的幫助

相關問題