繁体   English   中英

IE8及更低版本中的javascript / jquery焦点问题

[英]javascript/ jquery focus issue in IE8 and before

我有一个小问题。

当前,我具有以下用于在输入文本字段的焦点/模糊上格式化货币的功能:

jsfiddle

    $('.number').bind({
        focus: function() {
            $(this).val('$' + $(this).val());
        },
        blur: function() {
            var defVal = $(this)[0].defaultValue; 
            var dollars = $(this).val();
            dollars = dollars.replace('$', '');
            dollars = dollars.replace(',', '');
            dollars = parseFloat(dollars).toFixed(2);
            if (!(isNaN(dollars))) {
            $(this).val(dollars);
            } else {$(this).val(defVal).removeClass('inpt_validBlur');};
        }
    });

该功能可以在Firefox,Safari和IE9中正常运行,但是在IE的早期版本中存在问题。 在IE中,当您开始键入文字时,文字会出现在美元符号之前,而不是之后。 有谁知道原因以及如何解决它?

谢谢

这似乎为我工作。 并不完美,而且我真的不喜欢将javascript和jquery混合使用,但它确实有效。

 $('.inpt').focus(function() {
        var dollars = $(this).val();
        var defVal = $(this)[0].defaultValue;
        $(this).removeClass('inpt').addClass('inpt_Focus');
        if ($(this).val() === defVal || $(this).val() === '$') {
            $(this).val('');
        }
        if ($(this).hasClass('number')) {
            $(this).val('$' + $(this).val());
            var elemLen = $(this).length;
            if (document.selection) {
                var oSel = document.selection.createRange();
                oSel.moveStart('character', -elemLen);
                oSel.moveStart('character', elemLen);
                oSel.moveEnd('character', 0);
                oSel.select();
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM