如果输入不正确,如何将焦点保持在输入字段上

时间:2011-12-02 08:25:29

标签: javascript jquery

给出以下代码:

sPosSelect="#fpJpos input[name=posnum" + iiPos + "]";
if (fIn>fPosMaxWtUse[iiPos]) {
    alert(sprintf('%.0f is %.0f more than the position max of %.0f.',fIn,fIn-fPosMaxWtUse[iiPos],fPosMaxWtUse[iiPos]));
$(sPosSelect).val('');
$(sPosSelect).focus();
return;
}

它的作用是我收到警报,并且字段被清空。然而,焦点然后移动到下一个字段,当我想要的是它留在场上时只是空白,以便用户可以再试一次。

欢迎所有建议,包括我正在做的任何可以更好地完成的建议。

特里

1 个答案:

答案 0 :(得分:1)

我认为你的代码是在附加到相关字段的事件中,可能是模糊的?

如果是这种情况,您应该在函数末尾使用return false。这将告诉浏览器忽略它的默认行为,在这种情况下,它将移动到下一个字段。

您的代码目前正在做的是将焦点设置在字段中,然后将控制权返回给浏览器,这假设一切正常,并愉快地转移到下一个字段。

此外,如果此代码位于附加到该字段的事件中,您应该使用$(this)代替重复选择器$(sPosSelect)