2013-07-03 3 views
0

В настоящее время я делаю курс GCSE, который позволяет мне обратиться за помощью к источникам ИТ, если я ссылаюсь на них в своем исследовании. Я хочу, чтобы следующий код подтвердил, что в поле ввода «Номер экзаменационного номера» содержится четыре цифры. Я в порядке с простой проверкой, но это еще один шаг для меня .... Быстрые ответы будут оценены.Я хочу, чтобы мой код проверял поле, чтобы убедиться, что это число из четырех цифр. Как я могу это сделать?

<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.ExamEntry.subject.focus(); 
document.getElementById('subject').style.color="red"; 
result = false; 
} 

if (document.ExamEntry.examnumber.value=="") { 
msg+="You must enter your Examination Number \n"; 
document.ExamEntry.examnumber.focus(); 
document.getElementById('examnumber').style.color="red"; 
result = false; 
} 

var checked = null; 
var inputs = document.getElementsByName('examtype'); 
for (var i = 0; i < inputs.length; i++) { 
      if (inputs[i].checked) { 
      checked = inputs[i]; 
document.getElementById('examtype').style.color="red"; 
    } 
} 
if(checked==null) 
{ 
    msg+="Please choose an option"; 
    result = false; 
} 
else{ 
    confirm("You have chosen "+checked.value+" is this the correct course?"); 
} 

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> 
<td id="subject">Subject</td> 
<td><input type="text" name="subject" /></td> 
</tr> 
<tr> 
<td id="examnumber">Examination Number</td> 
<td><input type="text" name="examnumber" /></td> 
</tr> 
<tr> 
<td><input type="radio" id="examtype" name="examtype" value="GCSE" /> : GCSE<br /> 
<td><input type="radio" id="examtype" name="examtype" value="A2" /> : A2<br /> 
<td><input type="radio" id="examtype" name="examtype" value="AS"/> : AS<br /> 
</tr> 
<tr> 
<td><input type="submit" name="Submit" value="Submit" onClick="return validateForm();" /> </td> 
<td><input type="reset" name="Reset" value="Reset" /></td> 
</tr> 
</table> 
</form> 
</body> 
+1

HTTP: // WWW. regular-expressions.info/ –

ответ

3

Что касается проверки, если это число, вы можете использовать некоторые регулярное выражение: например

var reg = /^\d{4}$/ig; 
var regExRes = reg.exec(document.ExamEntry.examnumber.value); 
if (document.ExamEntry.examnumber.value == "" || (regExRes == null || regExRes.length == 0)) { 

    msg += "You must enter your Examination Number \n"; 
    document.ExamEntry.examnumber.focus(); 
    document.getElementById('examnumber').style.color = "red"; 
    result = false; 
} 

Чтобы не вводить ничего кроме номера, я хотел бы предложить вам использовать что-то вроде JQuery pluging называется masked input

EDIT: линия изменилась с var reg = /\d{4}/ig; на var reg = /^\d{4}$/ig;

+0

Я пробовал это, он, похоже, не работает, но используемое мной программное обеспечение не помещает никаких ошибок. Вы знаете, в чем проблема? Он не допускает число меньше четырех символов, что хорошо. Однако он позволяет использовать номера более четырех символов. –

+0

Привет, я редактирую ответ сейчас, похоже, что опечатка произошла. – EnterSB

+0

Большое спасибо. Кажется, сейчас работает. –