使用javascript设置焦点在文本框中
问题描述:
在文本框中,用户可以输入日期。在OnChange事件中,我试图使用JavaScript验证日期,如果它不是显示警告消息并将焦点置于文本框上的有效日期。使用javascript设置焦点在文本框中
在这里,当我输入无效日期并按下标签时,onchange事件触发,如果日期无效,它不会将焦点设置在texbox上,而是在窗体中的下一个文本框上设置焦点。
<asp:TextBox ID="txtDateOfBirth" runat="server"
onchange="validateDate(this)"></asp:TextBox>
function validateDate(sender) {
if (!Date.parseInvariant(sender.value, "MM/dd/yyyy")) {
alert("date is incorrect");
sender.focus();
}
}
答
尝试使用onblur
代替onchange
:
<script type="text/javascript">
check = function (sender) {
if (sender) {
alert("check");
sender.focus();
}
}
</script>
<asp:TextBox ID="txtTest" runat="server" onblur="check(this);"></asp:TextBox>
在上述例子中,如所预期的焦点返回到输入。
+0
谢谢詹姆斯! 与此同时,我找到了一种解决方法,将焦点设置在其他控件上,然后将焦点放在当前控件上。例如$(input).focus(); sender.focus(); 它为我工作。 – Prateek 2012-03-28 16:32:29
+0
嘿,那也行!真高兴你做到了。 – 2012-03-28 16:35:08
你可以使用jQuery吗? – 2012-03-28 15:41:13
你应该可以通过一点调试来解决这个问题... – 2012-03-28 16:00:16
sender.focus()和$(sender).focus()是相同的。 – Prateek 2012-03-28 16:05:22