如果没有所需的值,请将文本框聚焦在焦点上

如果它没有所需的值,我正在关注文本框。 执行此function后,文本框不会重新聚焦。 但它正在警告( alert("Must be 1"); )正确。

 $("#textbox").blur(function(event){ if ($(this).text != "1"){ event.preventDefault(); alert("Must be 1"); $(this).focus(); } }); 

任何的想法 ?

你可以这样做:

 $("#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()”搞糊涂了。 当然,如果您通过其他方式将消息传递给用户(并且请这样做:-),那么它可能会起作用。