使用javascript进行简单表单验证
我正在尝试创建一个简单的HTML表单&我想使用javascript验证这些值。使用javascript进行简单表单验证,javascript,html,forms,Javascript,Html,Forms,我正在尝试创建一个简单的HTML表单&我想使用javascript验证这些值。 以下是表格: <form action="" onSubmit="return formValidation();" method="Post" name="form"> &以下是textValidation()代码: function textValidation(txt, mn, mx) { var txtlen = txt.value.length; if (textlen =
以下是表格:
<form action="" onSubmit="return formValidation();" method="Post" name="form">
&以下是textValidation()
代码:
function textValidation(txt, mn, mx) {
var txtlen = txt.value.length;
if (textlen == 0 || txtlen <=mn || txtlen > mx ) {
document.getElementById('error').innerHTML = '<h6 style="color: red;">text is invalid</h6>';
return false;
}
return true;
}
函数文本验证(txt、mn、mx){
var txtlen=txt.value.length;
if(textlen==0 | | txtlen mx){
document.getElementById('error')。innerHTML='text is invalid';
返回false;
}
返回true;
}
问题是,当我输入无效文本时,它会显示错误,但再次点击提交按钮无效,即使我更改了文本。我使用了
alert()
&效果很好。我做错了什么?无论条件语句的结果如何,您的函数
formValidation()
总是返回false
考虑您的代码,并以某些方式更正:
function formValidation() {
var mytext=document.form.text;
if (textValidation(mytext, 3, 20)) {
}
return false;
}
如果函数textValidation(mytext,3,20)
为false,formValidation()
返回false。如果textValidation(mytext,3,20)
为真,那么。。。执行if
语句的主体,该主体为空,然后formValidation返回false
此外,代码中还存在许多不匹配的括号和其他与语法相关的问题。由于Javascript天生就是灵活的,所以在实践中您可能会错过这些东西。我建议使用来验证和改进Javascript代码的总体质量和设计。无论条件语句的结果如何,函数
formValidation()
总是会返回false
考虑您的代码,并以某些方式更正:
function formValidation() {
var mytext=document.form.text;
if (textValidation(mytext, 3, 20)) {
}
return false;
}
如果函数textValidation(mytext,3,20)
为false,formValidation()
返回false。如果textValidation(mytext,3,20)
为真,那么。。。执行if
语句的主体,该主体为空,然后formValidation返回false
此外,代码中还存在许多不匹配的括号和其他与语法相关的问题。由于Javascript天生就是灵活的,所以在实践中您可能会错过这些东西。我建议使用来验证和改进Javascript代码的总体质量和设计。您正在设置错误文本,但您没有清除它,因此它会一直存在。此外,必须在formValidation函数的if语句中返回true,否则它将始终返回false 您可以如下方式清除消息:
function textValidation(txt, mn, mx) {
var txtlen = txt.value.length;
if (textlen == 0 || txtlen <=mn || txtlen > mx ) {
document.getElementById('error').innerHTML = '<h6 style="color: red;">text is invalid</h6>';
return false;
}
document.getElementById('error').innerHTML = "";
return true;
}
function formValidation() {
var mytext=document.form.text;
if (textValidation(mytext, 3, 20)) {
return true;
}
return false;
}
您正在设置错误文本,但您没有清除它,因此它只是停留在周围。此外,必须在formValidation函数的if语句中返回true,否则它将始终返回false 您可以如下方式清除消息:
function textValidation(txt, mn, mx) {
var txtlen = txt.value.length;
if (textlen == 0 || txtlen <=mn || txtlen > mx ) {
document.getElementById('error').innerHTML = '<h6 style="color: red;">text is invalid</h6>';
return false;
}
document.getElementById('error').innerHTML = "";
return true;
}
function formValidation() {
var mytext=document.form.text;
if (textValidation(mytext, 3, 20)) {
return true;
}
return false;
}
您可以这样编写表单验证函数
function formValidation() {
var mytext=document.form.text;
//if the variable boolval is initialized inside double quotes it is string now it is bool variable
var boolval=false;
if (textValidation(mytext, 3, 20)) {
boolval=true;
}
return boolval;
}
如果textvalidation为true,则它将初始化true为boolval,或者此函数将返回boolval false,就像我们之前初始化的一样[这是默认值]您可以这样编写表单验证函数
function formValidation() {
var mytext=document.form.text;
//if the variable boolval is initialized inside double quotes it is string now it is bool variable
var boolval=false;
if (textValidation(mytext, 3, 20)) {
boolval=true;
}
return boolval;
}
如果textvalidation为true,则它将初始化true为boolval,或者此函数将返回boolval false,就像我们之前初始化的一样[这是默认值]控制台中出现任何错误??您希望发生什么?您没有else语句来删除错误,并且表单验证函数中的return false在表单没有错误时停止过程errors@GrahamT在何处以及如何放置else语句?您能在回答中解释更多吗?控制台中有错误吗?您希望发生什么?您没有else语句来删除错误,并且表单验证函数中的return false在表单没有错误时停止过程errors@GrahamT在何处以及如何放置else语句?你能在回答中解释更多吗?这是怎么做到的?你能纠正我的代码并把它给我看,这样我就能理解了吗?这是怎么做到的?你能纠正我的代码并把它给我看,这样我就可以理解了吗?我应该在
if
语句的主体中放些什么呢?function formValidation(){var mytext=document.form.text;return textValidation(mytext,3,20);}
@analytalica提出了一个很好的观点,如果您想扩展到包含其他验证函数,那么它实际上有助于保持内容的简洁性,在这种情况下,您可以只使用&&其他函数。也就是说,function formValidation(){var mytext=document.form.text;return textValidation(mytext,3,20)和&otherValidation(otherInput)&&&&;}
if语句的主体应该放些什么呢?function formValidation(){var mytext=document.form.text;return textValidation(mytext,3,20);}
@analytalica提出了一个很好的观点,如果您想扩展到包含其他验证函数,那么它实际上有助于保持内容的简洁性,在这种情况下,您可以只使用&&其他函数。例如,function formValidation(){var mytext=document.form.text;return textValidation(mytext,3,20)和&otherValidation(otherInput)&&&……}