我试图在输入字段旁边以红色显示一条错误消息,让用户知道,但我不知道为什么我的错误消息不起作用。输入要求以大写字母开头,后跟非特殊字符(任何字母)请帮我看看我的代码有什么问题我对 HTML 还是个新手,我知道很多人都说过正则表达式,但我不确定我没有学过<html><script>function validateForm() { var fname = document.getElementById("fname").value; if (/^[A-Z]\D{2,30}$/.test(fname) == false) { document.getElementById("errorName").innerHTML = "Your email must be filled"; return false; { return name;}</script><style>#errorName { color:red; }</style><form action="handleServer.php" method="get" onSubmit="return validateForm()"> <body> <!-- starting with first name--> First name: </br> <input id="fname" type="text" name="fname" size="30"> <span id="errorName"></br> <input type="submit" value="Submit"> </body></form> </html>
2 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
我看到你的 if 语句没有正确关闭,还有输入框。
function validateForm() {
console.log(1);
var fname = document.getElementById("fname").value;
if (/^[A-Z]\D{2,30}$/.test(fname) == false)
{
document.getElementById("errorName").innerHTML = "Your email must be filled";
return false;
{
return name;
}
}
}
森栏
TA贡献1810条经验 获得超5个赞
当我倾向于使用正则表达式时,我将它存储在它自己的值中,如下所示:
const patternName = /[0-9]|[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/|#]/; let resultName = patternName.test(name.value);
上面的代码检查 是否name
包含上面正则表达式中的任何内容,如果包含则resultName
返回true
。
接下来我们可以进行以下操作:
如果
name
为空,你会得到一个错误,它包含我们上面的正则表达式中的任何内容。在这种情况下,我们显示错误如果我们知道它
resultName
包含来自正则表达式的内容,那么它不是一个有效的名称。true
name
如果不是,我们显示成功消息
if (name.value === "" || resultName) {
showErrorName();
} else {
showSuccessName();
}`
添加回答
举报
0/150
提交
取消