使用javascript设置焦点在文本框中

使用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(); 
    } 
} 
+0

你可以使用jQuery吗? – 2012-03-28 15:41:13

+0

你应该可以通过一点调试来解决这个问题... – 2012-03-28 16:00:16

+0

sender.focus()和$(sender).focus()是相同的。 – Prateek 2012-03-28 16:05:22

尝试使用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