Javascript AngularJS必需输入,用代码设置,无效

Javascript AngularJS必需输入,用代码设置,无效,javascript,angularjs,Javascript,Angularjs,我的文本输入设置为必需。该字段是日期范围选择器。当日期范围选择器的代码输入文本时,angular不会将输入识别为已填充。它仍在解释一个验证错误,说明该字段是必需的。有什么想法吗?我尝试了$setValidity('required',true)那里没有运气 我正在使用此日期范围选择器: 这是密码。首先在html方面,我的输入: <input class="form-control" type="text" name="daterange" id="daterange" ng-model="

我的文本输入设置为
必需
。该字段是日期范围选择器。当日期范围选择器的代码输入文本时,angular不会将输入识别为已填充。它仍在解释一个验证错误,说明该字段是必需的。有什么想法吗?我尝试了
$setValidity('required',true)那里没有运气

我正在使用此日期范围选择器:

这是密码。首先在html方面,我的输入:

<input class="form-control" type="text" name="daterange" id="daterange" ng-model="daterange" placeholder="Pick A Date"/>
我在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>
    请求表单中的
  • {{key}}错误
    • {{e.$name}}有一个错误:{{key}}


如果我手动输入该字段,它将进行验证。但使用日期范围选择器则不会

我终于明白了。问题是daterange选择器没有以角度方式设置值。它是用jQuery实现的:

$('#daterange').val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
通过使用daterange选择器的相同回调,但使用角度方式设置值:

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

验证器会识别它。谢谢大家的帮助

您使用的是ui引导还是纯html控件?信息不完整,请共享您的html代码!是的,使用bootstrapI我认为您必须使用$watch让angular知道范围已经更改。由于您正在使用jQuery更新元素的值,angular将不会意识到这一点。您是否同时使用jquery和angulr?
$scope.daterange = (picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));