2013-03-13 110 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