表单验证实际上并没有为整个表单的一个输入字段返回 false



,因此我正在研究表单验证项目。我们给出了一组我们的投入必须满足的标准,并且我们必须使用正则表达式来检查所有内容。我已经编码所有内容,除了第一个输入外,一切都可以很好地工作。它会检查针对正则表达式,但是如果比赛有任何问题,它将返回true而不是false,并将窗口带到"表单接受"页面。

function validate_registration(){
    var RegExpName = /^[A-Z a-z]+$/;
    var RegExpCourseId = /^WEB*([1-9]{1})*[0-9]{2}$/;
    var studentName = document.reg_page.student_name.value;
    var courseID = document.reg_page.course_id.value;
    if (!RegExpName.test(studentName))
    {
        alert("Please enter the name on your Student ID");
        document.reg_page.s.focus();
        document.reg_page.s.select();
        return false;
    }
    else if (!RegExpCourseId.test(courseID))
    {
        alert("Please enter a valid Course ID");
        document.reg_page.c.focus();
        document.reg_page.c.select();
        return false;
    }
}
<div id="container">
<div id="page">
    <form name="reg_page" method="post" onSubmit="return validate_registration();"   action="thanks.htm" >
    <table id="form">
        <tr>
            <td colspan="2"><div id="table_title">Web Registration Form</div></td>
        </tr>
        <tr>
            <td class="label">Student Name:</td><td><input name="student_name" id="s" size="15" /></td>
        </tr>
        <tr>
            <td class="label">Course ID:</td><td><input name="course_id" id="c" size="10" /></td>
        </tr>

这是JavaScript和形式的相关位。课程ID区域正常工作。如果是空白的,则将返回false,并突出显示文本输入字段。为什么不使用学生的名字做同样的事情?

我对此没有任何问题。我不得不添加一个提交按钮,显然我没有Thys.htm页面,但这是JSFIDDLE:http://jsfiddle.net/bmlyd/3/。我做了什么与您尝试的不同/确切放置代码的事情?

不是真正的答案本身,但是由于我不让我发表评论,直到我有50次代表,这就是我必须使用的。

无论如何,您的代码在Linux的Chromium上对我来说很好。您可以发布有关目标系统的信息吗?您正在使用什么浏览器和操作系统?您还可以澄清应该和不应该通过验证的内容。我尝试遵循正则言论(我不是所有有条正义的人),它看起来像是通过它应该通过的一切,在这种情况下,这似乎是没有数字或符号的任何东西。

尝试使用脚本以查看是否有一些有用的信息,您可以尝试发布控制台日志。

是否有一些有用的信息。

这是整个代码吗?!

此代码对我有用(Firefox):

<!DOCTYPE html>
<html>
<head>
<script language="JavaScript">
<!--
function validate_registration(){
var RegExpName = /^[A-Z a-z]+$/;
var RegExpCourseId = /^WEB*([1-9]{1})*[0-9]{2}$/;
var studentName = document.reg_page.student_name.value;
var courseID = document.reg_page.course_id.value;
if (!RegExpName.test(studentName))
    {
        alert("Please enter the name on your Student ID");
        document.reg_page.s.focus();
        document.reg_page.s.select();
        return false;
    }
else if (!RegExpCourseId.test(courseID))
    {
        alert("Please enter a valid Course ID");
        document.reg_page.c.focus();
        document.reg_page.c.select();
        return false;
    }
}
//-->
</script>
</head>
<body>
    <form name="reg_page" method="post" onSubmit="return validate_registration();">
    <table id="form">
        <tr>
            <td colspan="2"><div id="table_title">Web Registration Form</div></td>
        </tr>
        <tr>
            <td class="label">Student Name:</td><td><input name="student_name" id="s" size="15" /></td>
        </tr>
        <tr>
            <td class="label">Course ID:</td><td><input name="course_id" id="c" size="10" /></td>
        </tr>
        <input type="submit" value="submit">
     </table>
     </form>
     </body>
     </html>

您可能只是忘记关闭功能吗?

如果使用jQuery是一个选项,也许会检查jQuery验证插件吗?http://docs.jquery.com/plugins/validation

我建议仅使用两个语句而不是其他语句使用,请查看它的作用。

相关内容

最新更新