2017-01-24 2 views
1

Я пытаюсь создать форму, где для каждой записи, которая не является пустой, должно быть вложение. Итак, когда поле имени заполнено, соответствующий входной файл должен быть необходим с помощью JQuery. Я использовал следующий код, но форма передается в любом виде.Входной файл требуется, если текстовое поле заполнено

<html> 
 
    <head> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
     <script> 
 
      $(document).ready(function(){ 
 
       //option A 
 
       $("#form").submit(function(e){ 
 
        if($("#name").val() != ""){ 
 
         $("#file").prop('required',true); 
 
        } 
 
       }); 
 
      }); 
 
     </script> 
 
    </head> 
 
    <body> 
 
     <form id="form" action="action.php"> 
 
      <table border="1"> 
 
       <tr> 
 
        <th>Name</th> 
 
        <th>ID</th> 
 
        <th>Attachment</th> 
 
       </tr> 
 
       <tr> 
 
        <th><input type="text" name="name" id="name"></th> 
 
        <th><input type="text" name="id" id="id"></th> 
 
        <th><input type="file" name="file" id="file" ></th> 
 
       </tr> 
 
       <tr> 
 
        <th><input type="text" name="name1" id="name1"></th> 
 
        <th><input type="text" name="id1" id="id1"></th> 
 
        <th><input type="file" name="file1" id="file1"></th> 
 
       </tr> 
 
      </table> 
 
      <input type="submit" > 
 
     </form> 
 
    </body> 
 
</html>

+1

Ваша функция проверяет поле имени только при отправке, которая является слишком поздней. Вы должны проверить использование другого события, например 'keyup' или' changed'. – dommmm

+0

@dommmm Вместо этого я использовал change(), и он отлично работал. Большое спасибо. –

ответ

1

Ваша функция проверяет поле имени только при отправке, которая является слишком поздней, поскольку форма инициирует действие отправки перед запуском проверки.

Вы должны вместо этого подтвердить использование другого события, например keyup или changed.

0

Он будет представлен сразу без проверки из-за вашего action="action.php". Чтобы вы могли манипулировать своим DOM внутри функции .submit(), вам необходимо удалить атрибут action в теге формы.

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