gpt4 book ai didi

javascript - 如果 javascript 验证失败,则聚焦文本字段

转载 作者:行者123 更新时间:2023-11-30 13:07:55 24 4
gpt4 key购买 nike

我有这段代码:

<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>

在上面的代码中,我试图在失去焦点时验证文本字段。如果名称以 A 开头,脚本工作正常。但我想如果用户输入不以 A 开头的不同名称,它会将焦点返回到文本字段 name。为此,我编写了这个脚本:

<script type="text/javascript">
var name = document.frm.name.value;
if(name.indexOf("A") == 0){
alert(name);
}else{
document.frm.name.focus();
}
</script>

然后就不行了。

任何人都可以提供帮助,我应该怎么做才能请求文本字段 name 的焦点?
我对 javascript 了解不多。

最佳答案

只需为您的表单提供一个 id 并使用 document.getElementById('form_id') 引用它。十多年前,在此上下文中使用 name 属性已被弃用。此外,inputname 应该是 "name" 之外的其他内容,而应使用 username 或 sth。

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>

JavaScript:

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

除了检索 formid 之外,您还可以将 form 传递给 validate()作为参数:onblur="validate(this);"。然后在事件处理程序中将该参数用作 form:

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

编辑

Focus 似乎没有延迟工作,你可以试试这个(input 有一个 id="username"):

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);
}
}

关于javascript - 如果 javascript 验证失败,则聚焦文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com