首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可能使用不同的占位符进行掩码输入?

是否可能使用不同的占位符进行掩码输入?
EN

Stack Overflow用户
提问于 2014-02-05 20:31:09
回答 1查看 8.7K关注 0票数 5

由于我的表单没有标签,所以我希望能够使用不同的占位符,具有角和角-UI-Utils-Mask:

代码语言:javascript
复制
<div ng-controller="myController">
    <input type="text"
        ng-model="date"
        ui-mask="99/99/9999"
        placeholder="Birth Date"/>  
</div>

使用jquery-inputmask,它就像一种魅力,但是我遇到了太多的问题,无法让它与角度一起工作,所以我现在试着用角度的方式,但是角显示了我的输入:

代码语言:javascript
复制
Bi/th/Date

这里有一个小提琴来展示它:http://jsfiddle.net/XS4R6/

我还看到一些人在谈论“ui-掩码-占位符”,但它什么也没做。

有办法做到这一点吗?

编辑

为了澄清,我认为只使用placeholders很好,因为您也使用了titles (提示),所以人们总是知道应该输入哪些输入:

显示__.___.___的输入是我使用的角度UI掩码。

JQuery输入掩码工作得很好,因为它显示了“名称”占位符,一旦我鼠标移动或单击输入,它就会显示掩码。

EN

回答 1

Stack Overflow用户

发布于 2014-07-17 04:17:33

我认为您可以使用另一个标记来模拟占位符,也许这里的代码不是很好,但我只是提供了另一个想法。

代码语言:javascript
复制
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();
                }
            });
        }
    }
};
}]);

http://jsfiddle.net/XS4R6/19/上的演示(需要jQuery)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21587856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档