Javascript 作为表单提交时没有错误,但作为函数提交时出错
我正在写一个表格,里面有两个按钮 其中一个是submit按钮,它检查表单中的所有字段,还有一个username字段,它不仅由表单的submit按钮检查,而且由单独的检查按钮检查 在用户名字段中,我必须想出一个具有以下特征的模式: 1.用户名必须介于8到12个字符之间 2.用户名必须由数字、字母(大写或小写)、点、破折号、下划线组成 3.用户名必须以字母开头 check按钮基于我自己编写的JavaScript函数工作 问题是: 当我输入“s_123asd”作为用户名时,“提交”按钮不会给我任何错误,但当我用“检查”按钮检查它时,我会得到模式不匹配错误 显然,我的函数有问题,因为该模式在regex101中运行良好 请帮忙 提前谢谢 代码如下:Javascript 作为表单提交时没有错误,但作为函数提交时出错,javascript,html,Javascript,Html,我正在写一个表格,里面有两个按钮 其中一个是submit按钮,它检查表单中的所有字段,还有一个username字段,它不仅由表单的submit按钮检查,而且由单独的检查按钮检查 在用户名字段中,我必须想出一个具有以下特征的模式: 1.用户名必须介于8到12个字符之间 2.用户名必须由数字、字母(大写或小写)、点、破折号、下划线组成 3.用户名必须以字母开头 check按钮基于我自己编写的JavaScript函数工作 问题是: 当我输入“s_123asd”作为用户名时,“提交”按钮不会给我任何错误
<!DOCTYPE html>
<html>
<head>
<script>
function pattern() {
var x = document.forms["regForm"]["uname"].value;
if (x.pattern != "[a-zA-Z][a-zA-Z0-9\.\-_]{7,11}") {
alert("pattern mismatch");
return false;
}
}
</script>
</head>
<body>
<form name="regForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
username: <input type="text" name="uname" pattern="[a-zA-Z][a-zA-Z0-9\.\-_]{7,11}" id="uname">
<button type="button" onclick="pattern()">check</button><br>
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
函数模式(){
var x=document.forms[“regForm”][“uname”].value;
如果(x.pattern!=“a-zA-Z][a-zA-Z0-9\.\-\\\\\{7,11}”){
警报(“模式不匹配”);
返回false;
}
}
用户名:
检查
尝试使用test()
。test()
方法测试参数中指定的字符串是否匹配。
如果该方法找到匹配项,则返回true,否则返回false
请尝试以下方法:
函数模式(){
var x=document.forms[“regForm”][“uname”].value;
var patt=/[a-zA-Z][a-zA-Z0-9\.-{7,11}/;
如果(!patt.test(x)){//请注意使用!来否定测试结果
警报(“模式不匹配”);
返回false;
}
}
用户名:
检查
这是因为在HTML中,您忘记重命名函数,以便在提交时从validateForm()调用pattern()。当我把它从
onsubmit="return validateForm()"
到
检查这对我来说很好!当我输入您提供的用户名时,它给出了一个错误!在您自己的
pattern()
函数中,您不运行正则表达式,只需比较两个字符串。我还注意到,您没有接受您的问题的任何答案,而且几乎没有投票。难道你不知道你应该这么做吗?
onsubmit="return pattern()"