当我使用Fragments
为输入设置值时,AngularJS不知道元素是否有值。以下是我的示例代码。
basica.setStockLevel(basica.getStockLevel() - assembledstocklevel)
将值设置为输入字段后,禁用的按钮将保持禁用状态。
有没有办法手动将type="date"
设置为<script src="angular.min.js"></script>
<div name="mainForm" ng-app="appTesting" ng-controller="ctrlTesting" ng-form>
<input type="date" ng-model="dateField" name="dateField" id="dateField" required />
<button ng-disabled="mainForm.dateField.$error.required">A disabled button</button>
<button ng-click="setValue()">Set Value</button>
</div>
<script>
angular.module("appTesting", []).controller("ctrlTesting", function($scope, $filter) {
$scope.setValue = function() {
$scope.dateField = $filter('date')(new Date(), 'yyyy-MM-dd');
document.getElementById('dateField').value = $filter('date')(new Date(), 'yyyy-MM-dd');
};
});
</script>
?
或者,有没有办法在设置值后手动触发$error.required
检查?
答案 0 :(得分:1)
与Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date - Angular
相关您的ngModel范围变量不是有效的Date对象。
只需在dateField
功能之前初始化setValue
变量。
$scope.dateField = new Date();
答案 1 :(得分:0)
我不知道它为什么不适合你,但这JSFiddle可以正常工作:
HTML:
Delete
JS:
<div ng-app="app">
<div name="mainForm" ng-app="appTesting" ng-controller="ctrlTesting" ng-form>
<input type="date" ng-model="dateField" name="dateField" id="dateField" required />
<button ng-disabled="mainForm.dateField.$error.required">A disabled button</button>
<button ng-click="setValue()">Set Value</button>
</div>
</div>
答案 2 :(得分:0)
无法使用“ myForm.input。$ error.required ”属性,您可以使用“ myForm.input。$ error.date ”。
这将满足您所需的所有要求。