我在部分页面中添加了占位符,如下所示
<input name="name" type="text" placeholder="Enter name" ng-class="{'error':form.name.$invalid}" ng-model="Name" required />
并实现了文本框的客户端验证。
if (this.name.$error.regEx) {
$scope.errorList.push({
Message: "Invalid name"
});
}
我已经为正则表达式创建了指令。此代码在chrome和IE 10中运行良好。但在IE 9中,如果我在文本框中复制并粘贴正确的名称,则会抛出客户端验证错误(因为它也会发生持有者文本)。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
IE9不支持placeholder
属性,因为它是HTML5属性。 thomseddon
angular.module('test', [])
.directive('placeholder', function($timeout){
var i = document.createElement('input');
if ('placeholder' in i) {
return {}
}
return {
link: function(scope, elm, attrs){
if (attrs.type === 'password') {
return;
}
$timeout(function(){
elm.val(attrs.placeholder);
elm.bind('focus', function(){
if (elm.val() == attrs.placeholder) {
elm.val('');
}
}).bind('blur', function(){
if (elm.val() == '') {
elm.val(attrs.placeholder);
}
});
});
}
}
});