使用JavaScript将重点放在HTML表单元素上

时间:2014-12-16 15:14:37

标签: javascript html forms focus

我有一个表单元素,我正在做一个小的验证。如果文本框无效,我希望我的文本框能够被聚焦。

这是我的HTML

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

这是我的脚本: 我想从else部分

中关注表单元素
<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>

5 个答案:

答案 0 :(得分:1)

input.value.focus();

只需要

input.focus();

答案 1 :(得分:0)

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

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>

答案 2 :(得分:0)

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

关注元素本身:

input.focus();

答案 3 :(得分:0)

试试这个: -

首先你手动检查。

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

这是否有效

input.focus()

enuogh但首先检查

答案 4 :(得分:-1)

在输入元素上使用pattern属性它需要一个正则表达式并使用所需的属性不需要任何只需要放置

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