2015-09-25 4 views
2

У меня есть форма, которая заполняется динамически из базы данных, как показано нижеValidate PHP формы с помощью Java Script

<form name="marksForm" method="post" action="process_add_marks.php"> 
     <table width="800px" class="tbl"> 
      <tr><th><b>Name</b></th><th><b>University</b></th><th><b>Batch</b></th><th><b>Contact</b></th><th><b>Add Marks</b></th></tr> 
      <?php 
      $query = "SELECT sl_no,student_name,university,batch,contact FROM mytable WHERE `university` = '".$clgname."' AND `batch` = '".$batch."' AND delete_status != 'Deleted'"; 
      $raw_result = mysqli_query($link,$query)or die(mysqli_error()); 
      $count=mysqli_num_rows($raw_result); 
      if(mysqli_num_rows($raw_result)>0) 
      { 
       while($results = mysqli_fetch_array($raw_result)) 
       { 
        echo "<tr>"; 
        echo "<td>".$results['student_name']."</td>"; 
        echo "<td>".$results['university']."</td>"; 
        echo "<td>".$results['batch']."</td>"; 
        echo "<td>".$results['contact']."</td>"; 
        echo "<td><input name=marks[".$results['sl_no']."] style='width:30px' type='text'></td>"; 
        echo "</tr>"; 
       } 
      } 

      ?> 
     </table> 
     <p id="markserr" style="color: #FF0000"></p> 
     <input type="hidden" name="hisdl" value="<?=$sdlname?>"> 
     <input style="margin: 20px;cursor: pointer;" name="submit" type="submit" class="button" onclick="return validateMarks();"> 
    </div>  
</form> 

Я пытаюсь проверить поле ввода с помощью JavaScript, как показано ниже

function validateMarks() 
{ 
    var b=document.getElementsByTagName('input'); 
    var count=0; 
    for (i=0;i<b.length;i++){ 
     var box=b[i]; 
     if(box.value!=''){ 
      count++; 
      break; 
     } 
    } 

    if (count!=0){ 
     alert('Please fill all the fields'); 
     return false; 
    } else { 
     return true; 
    } 
} 

Проблема Я не могу отправить форму даже после заполнения всех полей ввода

+0

Использовать атрибут 'required' вместо – Tushar

+0

Если вы хотите использовать JS для проверки, выберите только' input' внутри формы – Tushar

+0

Поместите 'console.log (count);' after for loop внутри функции и проверьте консоль вашего браузера. –

ответ

1

Проблема заключается в том, что ваш скрипт пытается проверить ценность вашего ввода.

В качестве одного из предложенных комментариев вы можете использовать требуемый атрибут для элемента ввода и соответственно изменить свой сценарий. Подобно этому ...

<script> 
function validateMarks() 
{ 
    var b = document.getElementsByTagName('input'); 
    var count = 0; 

    for(var i in b) { 
     var box = b[i]; 
     if(box.required && box.value === ''){ 
      count++; 
     } 
    } 

    if (count > 0){ 
     alert('Please fill all the fields'); 
     return false; 
    } else { 
     return true; 
    } 
} 
</script> 

<form> 
    <input type="text" name="foo" required /> 
    <input type="text" name="bar" required /> 
    <input type="text" name="wang" required /> 
    <input type="submit" onclick="return validateMarks();" /> 
</form> 

Я немного изменил ваш скрипт и сделаю его более читаемым.

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