AngularJS ngRequired ngDisabled无效

时间:2015-10-16 06:20:42

标签: javascript html angularjs

当我使用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检查?

3 个答案:

答案 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 ”。

这将满足您所需的所有要求。