使用javascript在文本框上设置焦点
在文本框中,用户可以输入日期。在OnChange事件中,我尝试使用javascript验证日期,如果它不是一个有效的日期,则显示一条警报消息并在文本框上设置焦点 在这里,当我输入无效日期并按tab键时,onchange事件会触发,如果无效日期,它不会在文本框上设置焦点,而是在表单中的下一个文本框上设置焦点使用javascript在文本框上设置焦点,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,在文本框中,用户可以输入日期。在OnChange事件中,我尝试使用javascript验证日期,如果它不是一个有效的日期,则显示一条警报消息并在文本框上设置焦点 在这里,当我输入无效日期并按tab键时,onchange事件会触发,如果无效日期,它不会在文本框上设置焦点,而是在表单中的下一个文本框上设置焦点 <asp:TextBox ID="txtDateOfBirth" runat="server" onchange="validateDate(this)"></asp
<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();
}
}
函数validateDate(发送方){
如果(!Date.parse不变量(sender.value,“MM/dd/yyyy”)){
警报(“日期不正确”);
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>
检查=功能(发送器){
如果(发送方){
警惕(“检查”);
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>
检查=功能(发送器){
如果(发送方){
警惕(“检查”);
focus();
}
}
在上面的示例中,焦点将按预期返回到输入。您应该能够通过一点调试来解决这个问题…sender.focus()和$(sender.focus()是相同的。可能发生的情况是,tab keypress事件是在
onchange
事件之后处理的,因此焦点确实设置为文本框,但它已经存在,然后按键事件发生,将焦点移动到下一个文本框。您应该能够通过一点调试来解决此问题…sender.focus()和$(sender.focus()是相同的。可能发生的情况是,tab keypress事件是在onchange
事件之后处理的,所以焦点确实被设置到了文本框,但它已经存在了,然后按键事件发生了,将焦点移动到下一个文本框。谢谢James!!!同时,我找到了一个解决方法,将焦点设置在其他控件上,然后将焦点设置在当前控件上。e、 g$(输入).focus();focus();这对我有用。谢谢詹姆斯!!!同时,我找到了一个解决方法,将焦点设置在其他控件上,然后将焦点设置在当前控件上。e、 g$(输入).focus();focus();这对我有用。