2011-11-10 9 views
1

私はRuby on Railsで実装していますが、少し問題があります。私はファイルを選択することができます(CSVファイル)、私はそれを読むことができるフォームがあります。しかし、ファイルが選択されておらず、送信ボタンをクリックすると、エラーが表示されます。私のCSV読者は何かを読んでいて、これはゼロです。 しかし、私が望むのは、送信ボタンをクリックすると、ボタンの下にエラーが表示され、ファイルを選択していないため、次のビューに移動できないことをユーザーに伝えます。 これを検索しましたが、このようなものは見つかりませんでした。誰かが何をすべきか知っていますか? ありがとう!ファイルが選択されていないときに次のビューに移動するのを防ぐ方法を教えてください。 Ruby on Railsで

これは私のフォームです:

<% 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

選択したファイルでない場合は、提出を防ぐために、このJavaScriptコードを使用することができます。あなたは、公共/ JavaScriptの中でこれを置くべき/

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

をapplication.jsまた、あなたは、ビューで、次のようにフォームのIDを示すために必要があります:

<% form_tag({:action => 'match'}, {:multipart => true, :id => 'file_form_id'}) do %> 
+0

それでは、どのように、これは正確では次のようになります私の場合?私は働かないので?これを私のコードの下に置くだけですか? – user1027319

+0

私は答えを編集して詳細を挿入しました –

+0

コードを正確にコピーしました。ボタンをクリックすると、アプリケーションは次のビューに移動したいだけで、同じエラーが発生します。 – user1027319

関連する問題