是否可以使用不同的占位符进行掩码输入? [英] Is it possible mask input using a different placeholder?

查看:29
本文介绍了是否可以使用不同的占位符进行掩码输入?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

<输入类型="文本"ng-model="日期"ui-mask="99/99/9999"占位符=出生日期"/>

使用 jquery-inputmask 它就像一个魅力,但我有太多问题无法让它与 Angular 一起使用,所以我现在尝试采用 Angular 方式,但 Angular 将我的输入显示为:

Bi/th/Date

这是一个展示它的小提琴: 的演示(需要 jQuery)

Since my form has no labels, I would like to be able to use a different placeholder with Angular and 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 it works like a charm, but I had too many problems to make it work with Angular so I'm now trying to go Angular way, but Angular shows my input as:

Bi/th/Date

Here's a fiddle to show it: http://jsfiddle.net/XS4R6/

I also saw some people talking about ´ui-mask-placeholder´, but it does nothing.

Is there a way to accomplish this?

EDIT

To clarify, I think it's just fine to use just placeholders since you also use titles (hint) so people always know what are they supposed to type in those inputs:

The input showing __.___.___ is the one I'm using Angular UI Mask.

JQuery Inputmask works very fine, since it shows the 'name' placeholder and as soon as I mouse over or click the input it shows the mask.

解决方案

I'm thinking you can use another tag to simulate placeholder, maybe the code here is not very good, but I just provide another thought.

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/ (jQuery required)

这篇关于是否可以使用不同的占位符进行掩码输入?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆