2013-04-04 2 views
0

Я новичок в JavaScript, и я занимаюсь университетским заданием, основанным на HTML и JavaScript. В этом задании мне было предложено создать несколько форм, чтобы человек мог зарегистрироваться для какой-либо формы учебных классов. Меня попросили создать форму с помощью HTML и проверить записи, используя только JavaScript.JavaScript двойной формы проверки

То, что я изо всех сил, чтобы выяснить, как проверить более одного входа формы, используя один блок проверки (если это возможно), я хочу, чтобы проверить оба firstname и familyname входы, используя только validateForm.

Вот сегмент я тестируя:

<head> 
    <script> 
     function validateForm() { 
      var x = document.forms["nameform"]["firstname"].value; 
      if (x == null || x == "") { 
       alert("first name must be filled out"); 
       return false; 
      } 
     } 
    </script> 
</head> 
<body> 
    <form name="nameform" , action="demo_form.asp" , onsubmit="return validateForm()" , method="post"> 
<b>First name:</b> 
     <input type="text" name="firstname"> 
     <br> 
<b>Family name:</b> 
     <input type="text" name="familyname"> 
     <br> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 

Любая помощь будет принята с благодарностью!

ответ

0
<head> 
<script> 
function validateForm() 
{ 
    var firstname=document.getElementById('txtfirstname'); 
    var familyname=document.getElementById('txtfamilyname'); 

    if (firstname.value=="") 
     { 
     alert("first name must be filled out"); 
     return false; 
     } 
    if (familyname.value=="") 
    { 
     alert("familyname must be filled out"); 
     return false; 
    } 

} 
</script> 
</head> 

<body> 
<form name="nameform", action="demo_form.asp", onsubmit="return validateForm()", method="post"> 
<b>First name:</b> <input type="text" id="txtfirstname" name="firstname"> 
<br> 
<b>Family name:</b> <input type="text" id="txtfamilyname" name="familyname"> 
<br> 
<input type="submit" value="Submit"> 
</form> 

</body> 
+0

Спасибо! Это именно то, что я искал. – bigsenator

0

Вы можете проверить все входы, сохранить сообщения об ошибках (если есть) и вернуть false в конце, если есть хотя бы один сбой.

т.е.

function validateForm() { 
    var x = document.forms["nameform"]["firstname"].value, errors = []; 
    if (x == null || x == "") { 
     errors.push("first name must be filled out"); 
    } 
    x = document.forms["nameform"]["familyname"].value; 
    if (x == null || x == "") { 
     errors.push("family name must be filled out"); 
    } 
    if(errors.length > 0) { // check if there were any errors 
     alert(errors.join("\n")); // alert all messages together 
     return false; 
    } 
} 
0

просто хранить его в нескольких переменных и несколько если заявления:

<script> 
    function validateForm() { 
     // name the variables appropriately 
     var firstname = document.forms["nameform"]["firstname"].value; 
     var familyname = document.forms["nameform"]["familyname"].value; 
     // check if either of them are correct, if not alert and return false. 
     if (firstname == null || firstname == "") { 
      alert("first name must be filled out"); 
      return false; 
     } else if (familyname == null || familyname == ""){ 
      alert("family name must be filled out"); 
      return false; 
     } 
     return true; 
    } 
</script> 
+0

По умолчанию для неназначенного логического значения установлено значение false. Вы должны явно вернуть true, если все поля проверяются. – ElPedro

+0

Спасибо @ElPedro, мне было интересно, если это необходимо, пока я это делал. Благодарю. –

0

Пара возможностей ...

<script> 
function validateForm() 
{ 
    var x=document.forms["nameform"]["firstname"].value; 
    if (x==null || x=="") 
    { 
     alert("first name must be filled out"); 
     return false; 
    } 
    x=document.forms["nameform"]["lasttname"].value; 
    if (x==null || x=="") 
    { 
     alert("last name must be filled out"); 
     return false; 
    } 
return true; 
} 
</script> 

представит предупреждение для каждого поля, поскольку оно не проверяет d возвращает true, если все поля в порядке.

<script> 
function validateForm() 
{ 
    var errorString=""; 
    var x=document.forms["nameform"]["firstname"].value; 
    if (x==null || x=="") 
    { 
     errorString+="first name must be filled out\n"; 
    } 
    x=document.forms["nameform"]["lasttname"].value; 
    if (x==null || x=="") 
    { 
     errorString+="last name must be filled out\n"; 
    } 
    if(errorString=="") 
    { 
     return true; 
    } 
    else 
    { 
     alert(errorString); 
     return false; 
    } 
} 
</script> 

возвращает одно предупреждение, в котором перечислены все поля, которые не прошли проверку.

Кроме того, мне всегда нравится использовать метод focus() для первого поля, который не прошел проверку, чтобы поместить курсор в поле, которое необходимо исправить.

0

Попробуйте это ..

function validateForm() 
{ 
    var msg=''; 
    var flag=false; 
     var x = document.forms["nameform"]["firstname"].value; 
     if (x == null || x == "") 
     { 
      flag = true; 
      msg = ' First Name ' 
     } 
     x = document.forms["nameform"]["familyname"].value; 
     if (x == null || x == "") 
     { 
      if(flag==true) 
       msg = msg + 'And Family Name ' 
      else 
       msg = msg + ' Family Name '; 
      flag = true; 
     } 
     if (flag==true) { 
      msg = msg + " must be filled out"; 
     alert(msg); 
     } 
     return false; 
} 
Смежные вопросы