给出以下代码:
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;
}
它的作用是我收到警报,并且字段被清空。然而,焦点然后移动到下一个字段,当我想要的是它留在场上时只是空白,以便用户可以再试一次。
欢迎所有建议,包括我正在做的任何可以更好地完成的建议。
特里
答案 0 :(得分:1)
我认为你的代码是在附加到相关字段的事件中,可能是模糊的?
如果是这种情况,您应该在函数末尾使用return false
。这将告诉浏览器忽略它的默认行为,在这种情况下,它将移动到下一个字段。
您的代码目前正在做的是将焦点设置在字段中,然后将控制权返回给浏览器,这假设一切正常,并愉快地转移到下一个字段。
此外,如果此代码位于附加到该字段的事件中,您应该使用$(this)
代替重复选择器$(sPosSelect)
。