Как запретить пользователю переходить к следующему просмотру, когда файл не выбран? В рубине на рельсах - PullRequest
1 голос
/ 10 ноября 2011

Я использую Ruby on Rails, и у меня есть небольшая проблема.У меня есть форма, в которой вы можете выбрать файл (CSV-файл), который я затем могу прочитать.Но если у меня нет выбранного файла, и я нажимаю на кнопку отправки, появляется ошибка.Потому что мой CSV-ридер хочет что-то прочитать, а это ноль.Но теперь я хочу, чтобы, когда я нажимал на кнопку «Отправить», под кнопкой просто появлялась ошибка, которая сообщает пользователю, что он не может перейти к следующему представлению, потому что он не выбрал файл.Я искал это, но ничего подобного не нашел.Кто-нибудь знает, что делать?Спасибо!

Это моя форма:

<% form_tag({:action => 'match'}, {:multipart => true}) do %>
<table">
   <tr>
     <td>
      <label for="dump_file">
        Select a CSV File :
      </label>
     </td>
     <td >
       <%= file_field_tag 'file', :size => 60%></p>
     </td>
   </tr>

 </table>
 <br/>

       <%= submit_tag 'Submit' -%>  

<% end -%>

1 Ответ

1 голос
/ 10 ноября 2011

Вы можете использовать этот код JavaScript, чтобы предотвратить отправку, если не выбран файл.Вы должны поместить это в public / javascripts / application.js

$(function(){
  $('#file_form_id').submit(function (e) {
    if ($(this).find('input[name="file"]').val() == '') { 
      e.preventDefault();
      alert('select a file');
    }     
  });
})

Также вы должны указать идентификатор формы, как это в представлении:

<% form_tag({:action => 'match'}, {:multipart => true, :id => 'file_form_id'}) do %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...