使用 JavaScript 将焦点设置在 HTML 表单元素上

Set focus on HTML form element using JavaScript

本文关键字:HTML 表单 元素 设置 JavaScript 焦点 使用      更新时间:2023-09-26

我有一个表单元素,我正在做一个小的验证。我希望我的文本框在无效时得到聚焦。

这是我的网页

<form id="frm" name="form1" onsubmit="validate()">
    Name: <input type="text" id="t1" name="txtBox">
    <input type="submit" value="submit">
</form>

这是我的脚本:我想聚焦其他部分的表单元素

<script>
    function validate(){
        var inp = frm.getElementsByTagName("input");
        var arr=[];
        var i;
        for(i=0;i<inp.length;i++){
            arr[i]=inp[i].getAttribute("id");
            //document.write(arr[i]);
        }
        //alert(inp[0].value);
        if(form.validateText(inp[0],arr[0])){
            return true;
        }
    }
    var form = {
        validateText : function(f,i){
            var input = document.getElementById(i);
            var reg = /^[a-zA-Z]$/;
            //var 
            var x = f;
            if(x.value.match(reg)){
                return true;
            }
            else{
                alert("invalid text");
                input.value.focus();
            }
        }
    };
</script>

input.value.focus();

只需要

input.focus();

使用这个:因为你可以有多个输入来决定要聚焦的输入。

document.getElementById("t1").focus();

您可以按以下方式执行此操作:

<script>
function setFocusToInput(){
    document.getElementById("t1").focus();
}
</script>
<body onload='setFocusToInput()'>
<form id="frm" name="form1" onsubmit="validate()">
    Name: <input type="text" id="t1" name="txtBox">
    <input type="submit" value="submit">
</form>
</body>

您正在尝试在 value 属性上使用 focus 方法,但这不会发生!

聚焦元素本身:

input.focus();

试试这个:-

首先手动检查。

$('#t1').focus();

这是有效的还是不明智的

input.focus()

埃诺夫,但首先检查

在输入元素上使用模式属性,它需要一个正则表达式,使用必需的属性不需要任何东西,只是把

<input type="text" id="t1" name="txtBox" pattern="^[a-zA-Z]$" required>