能否使用AngularJS将ng-model值设为time类型输入框的最小值?
实现AngularJS绑定ng-model到time输入框的min值
当然可以实现这个需求!不过你当前的代码里有个关键问题:原生HTML的min属性没办法直接识别AngularJS的变量,得用Angular提供的属性绑定方式来处理才行。
修改后的代码示例
<!-- 输入要作为min值的时间 --> <input type="text" ng-model="valueHour" name="valueHour" placeholder="请输入HH:mm:ss格式的时间" /> <!-- time输入框,通过ng-attr-min绑定min值 --> <input type="time" id="exampleInput" name="input" ng-model="example.value" placeholder="HH:mm:ss" ng-attr-min="{{valueHour}}" max="17:00:00" required />
关键说明
- 用
ng-attr-min="{{valueHour}}"替代直接写min="valueHour":ng-attr-*是AngularJS专门用来绑定原生HTML属性的指令,它会把变量valueHour的值解析后赋值给time输入框的min属性,当valueHour变化时,min值也会自动更新。 - 确保
valueHour的格式合法:HTML5的time输入框要求min值必须是HH:mm或者HH:mm:ss的格式,所以你输入的valueHour得符合这个规范,不然浏览器会忽略这个min限制。 - 建议初始化变量:在你的Angular控制器里最好初始化
valueHour为一个合法的时间字符串,比如:angular.module('myApp', []) .controller('myCtrl', function($scope) { $scope.valueHour = "09:00:00"; // 初始化min值为上午9点 $scope.example = { value: "" }; });
这样就能实现把valueHour的动态值设为time输入框的最小值啦!
内容的提问来源于stack exchange,提问作者Bibi
相关产品推荐
相关产品推荐

