2013-03-13 59 views
0

我写了下面的代码的HTML和JavaScript文件还嵌入下面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/

+2

把警报在你的js的顶部,看看是否能执行。我怀疑你在调用错误的文件。 – 2013-03-13 23:02:45

+0

我在调用common.js文件,其中包含验证代码。您可以检查脚本标记。 – Amol 2013-03-13 23:05:24

+0

你可以创建一个jsfiddle并更新来发布链接 - 更容易调试,这种方式 – 2013-03-13 23:09:19

回答

2

你是不是从validcourse返回任何东西的链接。从发生添加在那里return true;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; 

} 
+0

我有尝试过的人,但它不工作仍然验证没有发生 – Amol 2013-03-13 23:08:19

+1

你在'validcourse'里面的第一行设置了一个断点吗?只是为了看看你的函数是否被执行? – Steve 2013-03-13 23:09:20

+0

不,我没有写任何断点 – Amol 2013-03-13 23:13:11

0

看起来你在你的第三个功能有语法错误course_duration_valid(course_duration)

retrun false; 

应该是:

return false; 
+0

ya拼写错误我已将它返回 – Amol 2013-03-13 23:30:07

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