[英]javascript/ jquery focus issue in IE8 and before
我有一个小问题。
当前,我具有以下用于在输入文本字段的焦点/模糊上格式化货币的功能:
$('.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.