Jquery Robin Herbots输入面具,如何始终显示面具?

Jquery Robin Herbots输入面具,如何始终显示面具?,jquery,client-side,input-mask,Jquery,Client Side,Input Mask,我正在用我的应用程序处理一些日期时间的东西 我希望始终显示掩码,您可以通过将clearMaskOnLostFocus属性设置为false $.extend($.inputmask.defaults, { 'clearMaskOnLostFocus': false }); 如果您的输入直接来自用户按下键盘,则此功能非常有效。面具为空时仍会显示。我的问题是当textbox的值被编程设置为空字符串时,让它显示一个空掩码 $('#id').val(''); //this will remove

我正在用我的应用程序处理一些日期时间的东西

我希望始终显示掩码,您可以通过将
clearMaskOnLostFocus
属性设置为
false

$.extend($.inputmask.defaults, {
    'clearMaskOnLostFocus': false
});
如果您的输入直接来自用户按下键盘,则此功能非常有效。面具为空时仍会显示。我的问题是当
textbox
的值被编程设置为空字符串时,让它显示一个空掩码

$('#id').val(''); //this will remove the mask until hover or focus
在我开始修改插件之前,我想问一下,希望我遗漏了一些东西


我最终修改了内部的
fn.val
函数,这样,如果通过编程清除某个元素,它就会将该值设置为空掩码

$('#id').val(''); //this will set the value to an empty mask, ie __/__/____

//changes were made to this function
    $.fn.val = function ()
    {
        if (arguments.length == 0)
        {
            var $self = $(this);
            if ($self.data('_inputmask'))
            {
                if ($self.data('_inputmask')['opts'].autoUnmask)
                    return $self.inputmask('unmaskedvalue');
                else
                {
                    var result = $.inputmask.val.apply($self);
                    var inputData = $(this).data('_inputmask'), masksets = inputData['masksets'],
                        activeMasksetIndex = inputData['activeMasksetIndex'];
                    return result != masksets[activeMasksetIndex]['_buffer'].join('') ? result : '';
                }
            } else return $.inputmask.val.apply($self);
        } else
        {
            var args = arguments;
            //if there are args, and they are undefined, null or empty then use the native .val function
            if (args.length > 0 && isNullOrEmpty(args[0]))
            {
                return $.inputmask.val.apply($(this));
            }
            else
            {
                return this.each(function ()
                {
                    var $self = $(this);
                    var result = $.inputmask.val.apply($self, args);
                    if ($self.data('_inputmask'))
                        $self.triggerHandler('setvalue.inputmask');
                    return result;
                });
            }
        }

最后,我修改了内部
fn.val
函数,以便在通过编程清除某个元素时,将该值设置为空掩码

$('#id').val(''); //this will set the value to an empty mask, ie __/__/____

//changes were made to this function
    $.fn.val = function ()
    {
        if (arguments.length == 0)
        {
            var $self = $(this);
            if ($self.data('_inputmask'))
            {
                if ($self.data('_inputmask')['opts'].autoUnmask)
                    return $self.inputmask('unmaskedvalue');
                else
                {
                    var result = $.inputmask.val.apply($self);
                    var inputData = $(this).data('_inputmask'), masksets = inputData['masksets'],
                        activeMasksetIndex = inputData['activeMasksetIndex'];
                    return result != masksets[activeMasksetIndex]['_buffer'].join('') ? result : '';
                }
            } else return $.inputmask.val.apply($self);
        } else
        {
            var args = arguments;
            //if there are args, and they are undefined, null or empty then use the native .val function
            if (args.length > 0 && isNullOrEmpty(args[0]))
            {
                return $.inputmask.val.apply($(this));
            }
            else
            {
                return this.each(function ()
                {
                    var $self = $(this);
                    var result = $.inputmask.val.apply($self, args);
                    if ($self.data('_inputmask'))
                        $self.triggerHandler('setvalue.inputmask');
                    return result;
                });
            }
        }