0

私はhtmlで次のコードを書いており、javascriptファイルも下に埋め込まれています

<!DOCTYPE html>
<meta charset="utf-8">
<HTML>
<head>
<link rel="stylesheet" href="admin.css"/>
<script type="text/javascript" src="common.js"></script>
</head>
<BODY>
<div class="adminnav" id="adminnav">
<ul>
<li><a href="#">Insert</a>
<ul>
<li><a href="addcourse.html">Insert Course</a></li>
<li><a href="addstudent.html">Insert Student</a></li>
<li><a href="addteacher.html">Insert Teacher</a></li>
<li><a href="addsubject.html">Insert Subject</a></li>
</ul>
</li>
</ul>
</div>
<div class="addcourse" >
<form name="course" onSubmit='return validcourse()' method="POST">
Course Name:
  <input type="text" name="coursename" id="cname" /><br>
Duration:<input type="text" name="cd"/>
<br>
Course Id:<input name="cid" type="text" /><br>
<input  type="submit" value="submit" name="submit"><input type="reset" name="coursereset">
</form>
</div>
</BODY>
</HTML>

common.js

function validcourse()
{
    var course_name=document.course.coursename;
    var course_duration=document.course.cd;
    var course_id=document.course.cid;

    if(course_name_valid(course_name))
    {
        {
            if(course_duration_valid(course_duration))
            {
                if(course_id_valid(cid))
                {
                }
            }
        }
    }


}

function course_name_valid(course_name)
{
    var letters=/^[A-Za-z]+$/;
    if(course_name.value.match(letters))
    {
        return true;
    }
    else
    {
        alert("Course name must have alphabets only");
        course_name.focus();
        return false;

    }
}

function course_duration_valid(course_duration)
{
    var letters=/^[1-9]+$/;
    if(cd.value.match(letters))
    {
        return true;
    }
    else
    {   
        alert("Course Duration can have numbers only");
        course_duration.focus();    
        retun false;
    }   


}

function course_id_valid(course_id)
{
    var letters=/^[0-9a-zA-z]+$/;
    if(course_id.value.match(letters))
    {
        return true;
    }
    else
    {
        alert('Course ID must have character and numeric values only');
        course_id.focus();
        return false;           
    }
}

私の問題は、何も起こらず、エラーメッセージが表示されないことです。エラーメッセージはコース名についてのみ表示され、コース期間とコース ID については表示されませんか?

jsfiddle http://jsfiddle.net/amolkarale/aTfq6/1/へのリンクは次のとおりです。

4

3 に答える 3

2

から何も返していませんvalidcoursereturn true;そこにandを追加してreturn false;、送信を続行するか、送信を停止します。

function validcourse()
{
    var course_name=document.course.coursename;
    var course_duration=document.course.cd;
    var course_id=document.course.cid;

    if(course_name_valid(course_name))
    {
        {
            if(course_duration_valid(course_duration))
            {
                if(course_id_valid(cid))
                {
                    return true;
                }
            }
        }
    }
    return false;

}
于 2013-03-13T23:04:57.550 に答える
0

3番目の関数に構文エラーがあるようですcourse_duration_valid(course_duration)

retrun false; 

する必要があります:

return false; 
于 2013-03-13T23:19:58.080 に答える
0

さて、私はあなたのものを働かせました。必要な変更は次のとおりです。

まず、オブジェクト参照は DOM でよりクリーンにする必要があります

var course_name=document.getElementById("cname");
var course_duration=document.getElementById("cd");
var course_id=document.getElementById("cid");

ご覧のとおり、要素には個別の ID が必要です。

Course Name:
<input type="text" name="coursename" id="cname" /><br>
Duration:
<input type="text" name="cd" id="cd"/><br>
Course Id:
<input name="cid" type="text" id="cid" /><br>

最後に、retrun@Steveによってすでに指摘されているように、修正する必要があります

于 2013-03-14T00:40:03.530 に答える