【发布时间】:2012-07-12 15:23:46
【问题描述】:
我正在尝试验证输入语句,如果输入错误,用户会收到一个 Bubble Div 通知输入不正确。我正在尝试将焦点恢复到错误的输入元素并选择其中的文本。该代码适用于 Chrome,但不适用于 Firefox。谁能帮我这个? .我在这里发布代码:
$("#inner-tbl").on('blur', 'input[type=text]', function(e) {
var checkval = $(this).val();
checkval = checkval.replace(/\s/g,'');
$(this).val(checkval);
console.log(checkval);
var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
if(!numericReg.test(checkval)) {
$(this).addClass("error");
$(this).focus().select();
console.log("Not an integer");
var ip_width, ip_height, x;
ip_width = $(this).outerWidth();
ip_height = $(this).outerHeight();
x = $(this).offset();
console.log("Width :"+ip_width+" Height :"+ip_height+" Top :"+x.top+" Left :"+x.left);
$("body").append("<div class='error_bubble'><span class='errordiv'>Numeric value.</span></div>");
$(".error_bubble").css({
position: 'absolute',
top: (x.top+30)+'px',
left: (x.left-30)+'px'
});
}
});
这里是 jsfiddle:http://jsfiddle.net/neoragex/Wk35w/
【问题讨论】:
-
您能否展示一个工作演示或fiddle?
-
@PraveenKumar 添加了小提琴:)
-
在搜索了 6-7 小时后,我发现了一些起初看起来很有用但显然很麻烦的东西。临时解决方案是指定一个 setTimeout 函数并要求它执行得非常快。 setTimeout ( 函数() { $(this).focus(); }, 1 );.这东西一直在循环????????????????
-
M 已经拉了我的头发,我对 Mozilla 发生的事情一无所知。
-
它在 Mozilla 上运行得非常好。无法理解您面临的确切问题是什么! :(