Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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_Focus - Fatal编程技术网

如果javascript验证失败,则关注文本字段

如果javascript验证失败,则关注文本字段,javascript,focus,Javascript,Focus,我有以下代码: <html> <head> <script type="text/javascript"> function validate(){ var name=document.frm.name.value; if(name.indexOf("A")==0){ alert(name);

我有以下代码:

<html>
    <head>
        <script type="text/javascript">
            function validate(){
                var name=document.frm.name.value;
                if(name.indexOf("A")==0){
                    alert(name);
                }
            }
        </script>
    </head>
    <body>
        <form name="frm" action="test.php">
            Enter name:<input type="text" name="name" onblur="validate()"/>
            Enter e-Mail:<input type="text" name="email" onblur=""/>
            <input type="submit"/>
        </form>
    </body>
</html>
那就不行了

任何人都可以帮忙,我应该怎么做才能请求文本字段的焦点
name


我对
javascript

只有一点了解,可以这样修改您的脚本

   <html>
    <head>
        <script type="text/javascript">
            function validate(){
                var name=document.frm.name.value;
                if(name.indexOf("A")==0){
                    alert(name);
                }
            }
        </script>
    </head>
    <body >
        <form id="frm" action="test.php">
            Enter name:<input type="text" name="username" onblur="validate()"/>
            Enter e-Mail:<input type="text" name="email" onblur=""/>
            <input type="submit" onclick="check()"/>
        </form>
        <SCRIPT LANGUAGE="JavaScript">
        <!--
        function validate()
        {
            var name = document.getElementById('frm').username.value;
            if(name.indexOf("A") == 0){
                alert(name);
                        document.getElementById('frm').email.focus();
             }else{
                document.getElementById('frm').username.focus();
            }
        }
        function check()
        {
            var name = document.getElementById('frm').username.value;
            if(name.indexOf("A") == 0){
             }else{
                alert("Please enter a name starting with 'A'");
                     document.getElementById('frm').username.focus();
            }
        }
        //-->
        </SCRIPT>
    </body>
</html>

函数验证(){
var name=document.frm.name.value;
if(name.indexOf(“A”)==0){
警报(名称);
}
}
输入名称:
输入电子邮件:

您想在事件
onblur
上执行函数
validate()。在脚本中,您编写了聚焦代码,但没有将其添加到函数中。

只需为表单提供一个
id
,并使用
document.getElementById('form\u id')
引用即可。十多年前,在这种上下文中使用
name
属性已被弃用。另外,
名称
对于
输入
应该是非
“名称”
,而不是使用
用户名
或某物

HTML

<form id="frm" action="test.php">
    Enter name:<input type="text" name="username" id="username" onblur="validate()"/>
    Enter e-Mail:<input type="text" name="email" id="email" onblur=""/>
</form>
function validate(){
    var form = document.getElementById('frm');
    if (form.username.value.indexOf("A") === 0) {
        alert(name);
    } else {
        form.username.focus();
    }
}
您也可以将
表单
作为参数传递给
validate()
,而不是检索
表单的
id
,:
onblur=“validate(this);”
。然后在eventhandler中将该参数用作
表单

function validate(form){
    if (form.username.value.indexOf("A") === 0) {
        alert(name);
    } else {
        form.username.focus();
    }
}
编辑

Focus似乎无法立即工作,您可以尝试此操作(输入的
具有
id=“username”
):


试试这个
document.frm.username.focus()。我希望它能起作用。

不起作用吗?如果不添加以“a”开头的单词,则焦点位于名称文本字段上。你能解释一下不起作用吗?如果用户没有输入以
a开头的名称,请尝试而不是怎么做?如何聚焦该文本字段?我是否可以像这样传递文本字段的引用:
onBlur=“validate(this.username)”
?@MohammadFaisal是的,这也是有效的。为什么您使用
====
而不是
=
?@MohammadFaisal我刚才在比较时使用过。实际上,这并不重要,因为
indexOf()
将始终返回一个数字。
function validate(form){
    if (form.username.value.indexOf("A") === 0) {
        alert(name);
    } else {
        form.username.focus();
    }
}
function focusTo (elm) {
    elm.focus();
    return;
}

function validate(){
    var form = document.getElementById('frm');
    if (form.username.value.indexOf("A") === 0) {
        alert(name);
    } else {
        alert('error');
        setTimeout(function () {focusTo(form.username);}, 10);
    }
}