2013-09-17 4 views
0

Каждый раз, когда я нажимаю кнопку «Отправить», когда правильная информация не заполняется, есть предупреждающее сообщение для каждого раздела, и текст должен быть красным, но он связывает staight с связанным файлом. Если бы кто-то помог с этим, я был бы очень любезен.Процедура проверки не работает

<html> 
<head> 
<title>Exam Entry</title> 
<script language="javascript" type="text/javascript"> 
function validateForm() { 
var result = true; 
var msg=""; 
if (document.ExamEntry.Name.value=="") { 
msg+="You must enter your Name \n"; 
document.ExamEntry.Name.focus(); 
document.getElementById('Name').style.color="red"; 
result = false; 
} 
if (document.ExamEntry.Subject.value=="") { 
msg+="You must enter the Subject \n"; 
document.ExanEntry.Subject.focus(); 
document.getElementById('Subject').style.color="red"; 
result = false; 
} 
if (document.ExamEntry.ExamNumber.value=="") { 
msg+="You must enter the ExamNumber \n"; 
document.ExanEntry.ExamNumber.focus(); 
document.getElementById('ExamNumber').style.color="red"; 
result = false; 
} 
if (document.ExamEntry.ExamNumber.value.length!=4) { 
msg+="You must enter at least Four Numbers in the ExamNumber \n"; 
document.ExamEntry.ExamNumber.focus(); 
document.getElementById('ExamNumber').style.color="red"; 
result = false; 
} 
if ((Examentry.Exam Level[0].checked == false) && (Examentry.Exam Level[1].checked == false) && (Examentry.Exam Level[2].checked == false)) 
{ 
alert 
("Please select you Exam Level"); 
    return false; 
} 
if(msg==""){ 
return result; 
} 
{ 
alert(msg) 
return result; 
} 
} 
</script> 
</head> 
<body> 
<h1>Exam Entry Form</h1> 
<form name="ExamEntry" method="post" action="success.html"> 
<table width="50%" border="0"> 
<tr> 
<td id="Name">Name</td> 
<td><input type="text" name="Name" /></td> 
</tr> 
<tr> 
<td id="Subject">Subject</td> 
<td><input type="text" name="Subject" /></td> 
</tr> 
<tr> 
<td id="ExamNumber">ExamNumber</td> 
<td><input type="text" name="ExamNumber" Length="4"/> 
<front size="1">(Maximum characters: 4)</font></td> 
</tr> 
<tr> 
<td id="Exam Level">Exam Level</td> 
<td><input type="radio" name="age" value="GCSE">GCSE<br> 
<input type="radio" name="Exam Level" value="AS">AS<br> 
<input type="radio" name="Exam Level" value="A2">A2</td> 
</tr> 
<tr> 
<td><input type="submit" name="Submit" value="Submit" onclick="return validateForm();" /></td> 
<td><input type="reset" name="Reset" value="Reset" /></td> 
</tr> 
<tr> 
</tr> 
</table> 
</form> 
</body> 
</html> 

Это напильника ссылки на ...

<head> 
<title>Success message</title> 
</head> 
<body> 
<H1> You entered all the data required </H1> 
</body> 
+1

Я не вижу никаких идентификаторов, таких как Name, Examnumber и т. Д., Которые вы используете в javascript-функции. – Unknown

+0

@ Не известно: оно есть. Может быть, впоследствии отредактирован. – Harry

+0

У идентификаторов не должно быть пробелов -> «Уровень экзамена». Вы можете извлекать такие элементы из 'document.getElementById()', но не можете использовать его так же, как в своем '' '' '' ' – sErVerdevIL

ответ

1

Эта линия:

if ((Examentry.Exam Level[0].checked == false) && (Examentry.Exam Level[1].checked == false) && (Examentry.Exam Level[2].checked == false)) 

содержит синтаксические ошибки (пробел между «Экзамен» и «Уровень»), которые мешают ваш скрипт работает. Если убрать пробелы между «Экзамен» и «Уровень», он будет работать:

if ((Examentry.ExamLevel[0].checked == false) && (Examentry.ExamLevel[1].checked == false) && (Examentry.ExamLevel[2].checked == false)) 

Update: Вам также необходимо изменить идентификатор теги фактических HTML самих элементов, чтобы удалить пробелы. например <td id="Exam Level"> становится <td id="ExamLevel">

Я бы порекомендовал ваши браузеры. инструменты (F12 в большинстве браузеров) открываются при тестировании таких вещей, поскольку ошибки сценария synatx обычно будут отмечены сразу.

+2

Да. Идентификатор с пробелами - плохая идея. – LatinSuD

+0

@LatinSuD - :) thanks - я обновил свой ответ, чтобы уточнить, что он должен также исправить атрибуты id! –

+0

Спасибо, я исправил код, используя f12 i never new об этом спасибо. –

0

Это может быть ваша проблема. Удалить ;

function validateForm(); { //-----> Remove ; 
//rest of your code 
} 

Кроме того, вы должны смотреть на validationEngine плагин или jQuery validate.

+0

Спасибо за ответ, но я удалил его, и он не работает. –

Смежные вопросы