与AngularJS中占位符相关的GitHub问题
我在AngularJs中工作,并在所有输入表单元素中应用了占位符。因此,当页面加载时,$dirty隐式为true,因此在IE10中显示错误消息而不进行任何用户修改(也称为GitHub问题)。该代码在firefox和chrome中运行良好。这个GitHub问题有什么解决方案吗 以下是代码:与AngularJS中占位符相关的GitHub问题,angularjs,Angularjs,我在AngularJs中工作,并在所有输入表单元素中应用了占位符。因此,当页面加载时,$dirty隐式为true,因此在IE10中显示错误消息而不进行任何用户修改(也称为GitHub问题)。该代码在firefox和chrome中运行良好。这个GitHub问题有什么解决方案吗 以下是代码: <input type="email" placeholder="Enter email" name="userEmail" class="form-control" ng-model="user.ema
<input type="email" placeholder="Enter email" name="userEmail" class="form-control" ng-model="user.email" required autofocus autocomplete="on" autofill>
请填写这个字段
--编辑--
格式化代码块您看到的行为是由IE10和
required
指令组合引起的
要解决此问题,您可以编写一个自定义指令来执行验证,而不是angular的required
指令,如下所示:
.directive('myRequired', function () {
return {
require: '?ngModel',
link: function(scope, elm, attr, ctrl) {
if (!ctrl) return;
var validator = function(value) {
var isEmpty = ctrl.$isEmpty(value);
ctrl.$setValidity('required', !isEmpty);
return isEmpty ? '' : value;
};
ctrl.$formatters.push(validator);
ctrl.$parsers.unshift(validator);
}
};
});
然后用html格式的my required
替换required
:
<input type="email" placeholder="Enter email" name="userEmail" class="form-control" ng-model="user.email" my-required autofocus autocomplete="on" autofill />
有关完整示例,请参见:
希望这对您有用。您是否尝试过在表单中使用诺瓦利达?使用$dirty?