javascript中的验证不是验证函数
validation in javascript is not validating the function
我正在验证一个表单,该表单对必填字段、字符、数字、电子邮件、密码格式和字段长度进行了验证。
在我的代码中,必填字段和长度有效,但其余有效。
密码格式的JavaScript代码:
function CheckPassword(paswd) {
var submitFlag = false;
var paswd = /^(?=.*[0-9])(?=.*[!@#$%^&*_])[a-zA-Z0-9!@#$%^&*]{7,15}$/;
if (document.reg_indi_form.pswd.length > 0) {
if (!document.reg_indi_form.pswd.value.match(paswd)) {
submitFlag = true;
document.getElementById('i3').innerHTML = "Use atleast one digit,character,specialCharacter";
document.getElementById('i3').style.color = "red";
document.getElementById('i10').style.fontSize = "12px";
//return false;
}
}
return submitFlag;
}
function alls() {
var valid = true;
valid *= req();
valid *= validateUname();
valid *= CheckPassword(this);
valid *= num();
valid *= confirm_pswd();
valid *= namevalid();
valid *= ValidateEmail(this);
return valid ? true : false;
}
我在onSubmit
上呼叫alls()
所有其他不起作用的功能与checkPassword()
类似。
HTML代码:
<form name="reg_indi_form" method="post" onSubmit="return alls()" enctype="multipart/form-data" >
<table height="100" width="1000">
<tr>
<td>
First Name<font color="#FF0000">*</font>:
</td>
<td>
<input name="txt_fnm" type="text" id="txt_fnm"/> <label id="i"></label>
</td>
</tr>
<tr>
<td>
Password<font color="#FF0000">*</font>:
</td>
<td>
<input type="password" name="pswd" id="pswd"/><label id="i3"></label>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="Submit"/>
</td>
<td>
<input type="reset" name="reset" value="Reset"/>
</td>
</tr>
</table>
</form>
考虑密码正确时CheckPassword()
返回true。
现在,在CheckPassword()
函数document.reg_indi_form.pswd.value.match(paswd)
中,如果模式匹配,则此语句将返回true。您已经添加了!
,这意味着当密码和给定的模式不匹配时,它将返回true。我已经编辑了下面的函数,还考虑使用布尔运算符,而不是尽可能使用多个/嵌套的if语句。您没有任何id为i10的字段,我认为它应该是i3。
function CheckPassword() {
var submitFlag = false;
var paswd = /^(?=.*[0-9])(?=.*[!@#$%^&*_])[a-zA-Z0-9!@#$%^&*]{7,15}$/;
if ((document.reg_indi_form.pswd.length > 0) && (document.reg_indi_form.pswd.value.match(paswd))) {
submitFlag = true;
}
else{
document.getElementById('i3').innerHTML = "Use atleast one digit,character,specialCharacter";
document.getElementById('i3').style.color = "red";
document.getElementById('i3').style.fontSize = "12px";
}
return submitFlag;
}
最后,为什么在alls()
函数中对布尔值使用*=运算符?您应该使用布尔运算符。此外,this
将当前窗体或字段对象传递给函数,在这种情况下不需要它,因为您正在使用document.formName.fieldName
访问窗体的字段。此外,末尾的三元(bool?value1:value2)运算符也是不必要的。
function alls() {
var valid = req()
&& validateUname()
&& CheckPassword()
&& num()
&& confirm_pswd()
&& namevalid()
&& ValidateEmail();
return valid;
}
相关文章:
- 使用jquery验证函数不适用于select元素
- ng if不验证函数
- 我需要帮助来调用add()函数和验证函数,所以首先它将验证和然后添加
- 所需字段的验证函数更短
- Javascript验证函数总是回复无效
- 如何包含来自另一个 PHP 文件的 PHP 验证函数
- 如何编写验证函数以仅读取 XLS 和 XLSX 格式的 Excel 文件
- .each() 在 .clone() 之后用于验证函数
- 当 openssl 命令行验证签名时,节点.js验证函数不会验证签名
- 在 jQuery 中组合验证函数并替换类名
- 自定义验证程序客户端验证函数未触发
- 我们可以在 Java 脚本验证函数中包含 jQuery 吗?
- 具有返回值的验证函数
- JavaScript 编号验证函数
- 如何编写一个测试来验证函数是否已成功将字符串列表(在数组中指定)打印到屏幕上
- 将另一个验证函数附加到 Javascript 表单验证逻辑
- 简单的Javascript验证函数
- 我的表单未使用 jquery 验证函数进行验证
- ASP.NET - 在提交表单之前调用 javascript 验证函数
- 如何对输入标记调用验证函数