由于我的表单没有标签,我希望能够在 Angular 和 Angular-UI-Utils-Mask 中使用不同的占位符:
<div ng-controller="myController">
<input type="text"
ng-model="date"
ui-mask="99/99/9999"
placeholder="Birth Date"/>
</div>
Using jquery-inputmask
它的工作原理就像一个魅力,但我遇到了太多问题,无法使其与 Angular 一起使用,所以我现在尝试采用 Angular 方式,但 Angular 将我的输入显示为:
Bi/th/Date
这是一个小提琴来展示它:http://jsfiddle.net/XS4R6/ http://jsfiddle.net/XS4R6/
我还看到有些人在谈论“ui-mask-placeholder”,但它没有任何作用。
有办法做到这一点吗?
EDIT
为了澄清一下,我认为只使用就可以了placeholders
因为你也使用titles
(提示)这样人们总是知道他们应该在这些输入中输入什么:
输入显示__.___.___
是我正在使用 Angular UI Mask 的那个。
JQuery Inputmask 工作得非常好,因为它显示“名称”占位符,一旦我将鼠标悬停或单击输入,它就会显示掩码。
我想你可以使用另一个标签来模拟占位符,也许这里的代码不是很好,但我只是提供另一种想法。
app.directive("myPlaceholder", ['$compile', function($compile){
return {
restrict: 'A',
link: function(scope, elem, attr) {
attr.$observe('myPlaceholder', initialize);
var mask = '__/__/____';
function initialize(value) {
// label is not clickable in IE, that's the reason why we use span tag
var fakePlaceholder = angular.element('<span class="placeholder">' + value + '</span>');
// click placeholder to focus the input
fakePlaceholder.on('click', function(){
elem.focus();
});
elem.before(fakePlaceholder);
$compile(fakePlaceholder)(scope);
elem.on('focus', function() {
fakePlaceholder.hide();
}).on('blur', function() {
if (elem.val() === mask) {
fakePlaceholder.show();
}
});
}
}
};
}]);
demo on http://jsfiddle.net/XS4R6/19/ http://jsfiddle.net/XS4R6/19/(需要 jQuery)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)