输入没有集中

时间:2014-03-24 19:10:07

标签: javascript jquery

我有一张表,其中用户可以输入最后一列的输入数字。评估此数量,如果不正常,则会显示alert()消息,输入val()设置为$ 0,00,同样的输入应该集中,但似乎是focus()函数不起作用。

代码在我看来是正确的,当我用firebug进行调试时,有时候其他人也不会这样做。当我在firebug控制台$("ID").focus()上输入时,它工作正常。我想知道世界上是否有这样一个人可以帮我解决这个问题!

$('#table [type=text]').val('$ 0,00').keyup(function () {
    amf2005_BecameCurrency(this, 20);
}).blur(function () {
    if (!validate($(this).val())) {
        $(this).val('0,00');
        $(this).focus();
    }
    amf2005_BecameCurrency(this, 20);
    $(this).val("$ " + this.value);
});

1 个答案:

答案 0 :(得分:0)

这是一个有根据的猜测!

在您提供的代码中,您在“模糊”事件的处理程序内调用“焦点”事件。我不确定这是否允许,但有一种简单的方法可以看。

尝试将$(this).focus()替换为setTimeout(function() { $(this).focus(); }, 0)

使用延迟为零的setTimeout函数会使浏览器立即移动焦点,但代码将不再在模糊处理程序的上下文中执行。

另外,您提到了警报功能。仅供参考,有像jQuery UI这样的库提供了绘制风格化对话框作为页面一部分的功能。这些被认为优于使用警报功能。