角度使输入手动有效
Angular make input valid manually
我使用的是引导日期选择器。当我点击图标date&时间自动输入。但是输入仍然是无效的,因为我没有直接与它交互。有人面临过这个问题吗。
这是它的plnkr:http://plnkr.co/edit/yBmwZCCPvTOQWE6q3BW5
视图
<body data-ng-controller="ReservationController as resvnCtrl">
<div class="container">
<div class="col-lg-6 col-lg-offset-3 col-md-8 col-md-offset-2 col-sm-12 col-xs-12 ">
<div>
<h2 class="text-center page-heading">Make a reservation</h2>
</div>
<div>
<form role="form" name="resvnCtrl.form" data-ng-submit="resvnCtrl.submitForm(resvnCtrl.form.$valid)" novalidate>
<div class="form-group" data-ng-class="{'has-error':resvnCtrl.form.time.$invalid && (resvnCtrl.form.time.$dirty || resvnCtrl.form.$submitted) }">
<label class="control-label">Date-Time</label>
<div class='input-group date' id='datetimepicker'>
<input type="text" name="time" id="time" data-ng-model="resvnCtrl.reservation.time"
placeholder="Enter Desired Time" class="form-control" required>
<span class="input-group-addon pointer" data-date-picker>
<i class="fa fa-calendar"></i>
</span>
</div>
<div data-ng-messages="resvnCtrl.form.time.$error" data-ng-if="resvnCtrl.form.time.$dirty || resvnCtrl.form.$submitted">
<p class="help-block" data-ng-message="required">Date and Time required</p>
</div>
</div>
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<input type="submit" name="submit" id="submit" value="Make Reservation" class="btn btn-primary btn-block " >
</div>
</div>
</form>
</div>
</div>
</div>
</body>
控制器
var app = angular.module('plunker', []);
angular.module('plunker')
.controller('ReservationController',ReservationController);
ReservationController.$inject=['$scope'];
function ReservationController($scope) {
var resvnCtrl=this;
resvnCtrl.reservation={};
resvnCtrl.confirmation={};
$('#datetimepicker').datetimepicker();
resvnCtrl.submitForm=function(isValid){
alert("valid:"+resvnCtrl.form.time.$valid);
}
}
我想你可以参考角带:http://mgcrea.github.io/angular-strap/#/datepickers.当您将angular-strap.min.js
、angular-strap.tpl.min.js
和libs.min.css
导入到index.html时,您的app.js
应该是这样的:
var app = angular.module('plunker', ['mgcrea.ngStrap.datepicker']);
这是在angular中使用jQuery的诅咒。当插件初始化时,模型控制器只更新$viewValue
,这不会触发摘要。摘要触发了我的另一个动作——专注于运行摘要。
解决方案是观察者通过$setViewValue()
方法手动设置$modelValue
,这样angular就会知道发生了什么并更新验证。
请为日期选择器创建单独的指令,该指令将在您使用指令的元素上初始化它。
相关文章:
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- 输入类型=“;文件“;onclick有效,但文件选择不显示
- 文本输入值有时不会更改,即使它没有错误,并且似乎有效
- 筛选数字数组,其中 0 是有效输入
- Javascript - 当所有输入都有效时启用提交按钮
- ng变化不会'除非我输入了有效的电子邮件地址,否则我不会因为输入电子邮件而被解雇
- 输入元素模式属性的Javascript正则表达式在reFiddle上有效,但在页面上无效
- AngularJS:当输入有效的电子邮件地址时,启用提交按钮
- HTML5 checkValid表示空输入有效
- 如何有效地搜索具有介于 jquery 之间的索引的 name 属性的输入
- 在 AngularJS 中,如何在输入字段中输入有效数据时在输入字段前面显示绿色刻度线
- Node.js' crypto.createSign() 的有效算法输入字符串
- jQuery扩展搜索图标输入,不太有效
- 为什么我的 if 语句仅在我的输入具有值时才有效
- 如果输入的值在数据库中有效,请更改输入背景颜色
- 为什么我的 javascript 函数只有在我手动输入输入时才有效
- AngularJS输入url无效/有效/错误
- Foundation Abide-如果先前的输入无效,则在有效输入上触发无效错误
- 在Rails助手中使用Javascript调用验证文本字段时,如何返回最后一个有效输入
- jQuery 验证插件无法识别有效输入