Javascript 两字段验证 拯救 取消 /****此页面的特定JS****/ //验证事项 函数validate_course_name(){ var TCode=document.getElementById('course_name')。值; 如果(/[^a-zA-Z1-9-]/.测试(TCode)){ document.getElementById('course_name_info')。innerHTML=“请仅输入字母数字或,-,”; 返回false; } 其他的 { document.getElementById('course_name_info')。innerHTML=“请仅输入字母数字或,-,”; 返回true; } } 函数validate_course_desc(){ var TCode=document.getElementById('course_desc')。值; 如果(/[^a-zA-Z1-9-]/.测试(TCode)){ document.getElementById('course_desc_info').innerHTML=“请仅输入字母数字或,-,”; 返回false; } 其他的 { document.getElementById('course_desc_info').innerHTML=“请仅输入字母数字或,-,”; 返回true; } } 函数验证(){ 返回validate_course_name(); 返回validate_course_desc(); }
这就是代码…我在两个字段上应用字母数字验证,但问题是如果我给第一个输入字段有效输入,第二个无效表单提交,我哪里做错了。。。我是这个网站的新手,因此任何帮助都将不胜感激:) 或者你可以使用Javascript 两字段验证 拯救 取消 /****此页面的特定JS****/ //验证事项 函数validate_course_name(){ var TCode=document.getElementById('course_name')。值; 如果(/[^a-zA-Z1-9-]/.测试(TCode)){ document.getElementById('course_name_info')。innerHTML=“请仅输入字母数字或,-,”; 返回false; } 其他的 { document.getElementById('course_name_info')。innerHTML=“请仅输入字母数字或,-,”; 返回true; } } 函数validate_course_desc(){ var TCode=document.getElementById('course_desc')。值; 如果(/[^a-zA-Z1-9-]/.测试(TCode)){ document.getElementById('course_desc_info').innerHTML=“请仅输入字母数字或,-,”; 返回false; } 其他的 { document.getElementById('course_desc_info').innerHTML=“请仅输入字母数字或,-,”; 返回true; } } 函数验证(){ 返回validate_course_name(); 返回validate_course_desc(); },javascript,Javascript,这就是代码…我在两个字段上应用字母数字验证,但问题是如果我给第一个输入字段有效输入,第二个无效表单提交,我哪里做错了。。。我是这个网站的新手,因此任何帮助都将不胜感激:) 或者你可以使用 function validate(){ var value1 = validate_course_name(); var value2 = validate_course_desc(); if(value1 == true && value2 == true
function validate(){
var value1 = validate_course_name();
var value2 = validate_course_desc();
if(value1 == true && value2 == true)
return true;
else
return false
}
然后直接调用此函数更改函数validate() 在函数中执行return语句后,return语句后面的其他语句将不起作用 因此,每次调用validate_course_name()函数时,都会返回一个bool值,甚至不会调用/执行validate_course_desc()
因此,如果validate\u course\u name()为true,则validate函数返回true;如果validate\u course\u name()为false,则validate函数返回false。因此,当您提供第一个字段有效输入,第二个字段无效输入时,表单将被提交。更新的答案:
function validate(){
return validate_course_name();
return validate_course_desc();
}
很好!只是为了与众不同=)
如果验证课程名称()
返回false
,则一行应验证两个字段
JSFiddle:设
false
=0,true
=1。现在计算:)在这个函数中,应该只返回一次。因此,这里发生的情况是,当执行validate\u course\u name()
时,控件已经返回到调用例程<代码>验证课程描述()行不会执行
function validate()
{
return (validate_course_name() * validate_course_desc()) == true;
}
您应该这样做:
function validate(){
return validate_course_name();
return validate_course_desc();
}
下面给出的验证方法将在调用第一个验证方法(
validate\u course\u name
)后立即返回,因此它不会执行validate\u course\u desc
方法
function validate(){
var bol1 = validate_course_name();
var bol2 = validate_course_desc();
if(bol1 == true && bol2 == true)
return true;
else
return false;
}
解决方案是执行这两种验证方法并对其进行汇总,以创建上述答案中给出的返回值两个输入字段的验证是相同的,因此您可以创建一个以元素id为参数的验证函数:
function validate(){
return validate_course_name();
return validate_course_desc();
}
然后可以使用函数validate()
检查两个输入字段是否有效:
function validateInputfield(id){
var TCode = document.getElementById(id).value;
if( /[^a-zA-Z1-9 _-]/.test( TCode ) ) {
document.getElementById(id).innerHTML="Please Enter Only Alphanumeric or _,-,' ' ";
return false;
} else {
return true;
}
}
您的
validate()
不正确。如果名称验证成功,则执行第一个return语句并从方法返回。永远没有机会运行第二次验证。执行类似于“如果第一次验证成功,那么调用第二次验证。”@user2137186您是否理解问题+1以显示第一种验证方法。每个人做的事情都略有不同。您的第一个版本将验证这两个字段并显示每个字段的消息,而如果coure name无效,则第二个版本将不显示descripti on的消息。@user2137186您可以使用第一个代码显示两个验证错误messgaes@PSR如果(validate==false)出现if,是否有具体原因
最后?如果任何一个验证失败,则返回False,但如果两个字段都不正确,则不会同时显示错误消息,因此我将+1设为PSR@Paulpro我称之为“功能”=P@Paulpro更新了我的答案;)
function validate(){
return validate_course_name();
return validate_course_desc();
}
function validateInputfield(id){
var TCode = document.getElementById(id).value;
if( /[^a-zA-Z1-9 _-]/.test( TCode ) ) {
document.getElementById(id).innerHTML="Please Enter Only Alphanumeric or _,-,' ' ";
return false;
} else {
return true;
}
}
function validate() {
if (validateInputfield('course_desc_info') == true &&
validateInputfield('course_name_info') == true) {
return true;
} else {
return false;
}
}