gpt4 book ai didi

javascript - 在验证后将焦点设置到文本框表单元素

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

我在表单上有多个字段执行验证,如果验证失败,我希望关注焦点这些字段。验证工作正常,即 rtnStr,但 focus() 不会落在任何文本框字段上,即 vCtrl。它保留在“提交”按钮上。

<script language="javascript">

function ValidateForm() {
var rtnStr = "";
var vCtrl = "";

//Contact Details //
if (document.contactform.txtforename.value == "") {
rtnStr = rtnStr + " - Please enter your Forename.\n"
if (vCtrl == "") {
vCtrl = "txtforename";
}
}

if (document.contactform.txtSurname.value == "") {
rtnStr = rtnStr + " - Please enter your Surname.\n"
if (vCtrl == "") {
vCtrl = "txtSurname";
}
}

if (rtnStr != "") {
alert(rtnStr)
window.setTimeout(function () {
document.getElementById(vCtrl).focus();
}, 0);
return false;
}
else {
return true;
}
}
</script>

最佳答案

问题在于 vCtrl 是一个字符串,它是表单的名称,而不是 document.getElementById(vCtrl).focus() 正在查找的id 。解决这个问题的方法是让 vCtrl 存储 DOM 元素而不是文本字符串。

<script  language="javascript">
function ValidateForm() {
var rtnStr = "";
var vCtrl = "";
//Contact Details //
if (document.contactform.txtforename.value == "") {
rtnStr = rtnStr + " - Please enter your Forename.\n"
if (vCtrl == "") {
vCtrl = document.contactform.txtforename;
}
}

if (document.contactform.txtSurname.value == "") {
rtnStr = rtnStr + " - Please enter your Surname.\n"
if (vCtrl == "") {
vCtrl = document.contactform.txtSurname;
}
}

if (rtnStr != "") {
alert(rtnStr)

vCtrl.focus();

return false;
}
else {
return true;
}
}
</script>

jsfiddle

关于javascript - 在验证后将焦点设置到文本框表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084129/

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