Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在文本框上设置焦点_Javascript_Asp.net_Ajax - Fatal编程技术网

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

使用javascript在文本框上设置焦点,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,在文本框中,用户可以输入日期。在OnChange事件中,我尝试使用javascript验证日期,如果它不是一个有效的日期,则显示一条警报消息并在文本框上设置焦点 在这里,当我输入无效日期并按tab键时,onchange事件会触发,如果无效日期,它不会在文本框上设置焦点,而是在表单中的下一个文本框上设置焦点 <asp:TextBox ID="txtDateOfBirth" runat="server" onchange="validateDate(this)"></asp

在文本框中,用户可以输入日期。在OnChange事件中,我尝试使用javascript验证日期,如果它不是一个有效的日期,则显示一条警报消息并在文本框上设置焦点

在这里,当我输入无效日期并按tab键时,onchange事件会触发,如果无效日期,它不会在文本框上设置焦点,而是在表单中的下一个文本框上设置焦点

<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();这对我有用。