如果没有所需的值,我正在关注文本框。执行此功能后,文本框不会重新聚焦。但是它正确警告(alert("Must be 1");
)。
$("#textbox").blur(function(event){
if ($(this).text != "1"){
event.preventDefault();
alert("Must be 1");
$(this).focus();
}
});
有什么想法吗?
答案 0 :(得分:2)
你可以这样做:
$("#textbox").blur(function(event){
var tb = this;
if ($(this).val() != "1"){
event.preventDefault();
alert("Must be 1");
setTimeout( function() { $(tb).focus(); }, 1);
}
});
通过将“.focus()”调用置于超时状态,可以在单独的事件循环中进行切换。另请注意,您试图错误地获取值(“。text”),并且还必须保留对“tb”中元素的引用。
我怀疑这可能不适用于Safari。 Safari 真的不愿意服从“.focus()”调用,并且它被“alert()”搞糊涂了。当然,如果您通过其他方式向用户发送消息(并且请这样做:-),那么它可能会起作用。