我在哪里将JQuery放在Ruby On Rails中?

时间:2011-11-24 13:05:11

标签: jquery ruby-on-rails

我在Ruby on Rails中实现。我想用Jquery做什么。我想做的只是:我有一个file_field_tag,让用户上传文件,当用户选择文件时,提交按钮已经启用。因此,只要用户没有选择文件,用户就无法点击该按钮。

这是我写的JQuery

$(document).ready(
    function(){
        $('input:file').change(
            function(){
                if ($(this).val()) {
                    $('input:submit').attr('disabled',false);
                    // or, as has been pointed out elsewhere:
                    // $('input:submit').removeAttr('disabled'); 
                } 
            }
            );
    });

我的观点如下:

<h2>Import projects and users</h2>


<% form_tag({:action => 'match'}, {:multipart => true, :id => 'file_form_id'}) do %>
<fieldset title="File">
    <legend>File</legend>
<table>
   <tr>
     <td>
      <label for="dump_file">
        Select a CSV File :
      </label>

         </td>
         <td >
           <%= file_field_tag 'file', :size => 500 %></p>
         </td>
       </tr>   
     </table>

           <%= submit_tag 'Submit', :disabled => true -%>


    <% end -%>

我认为这是正确的。但是我必须把这个javascript放在哪里?我真的不知道把它放在哪里。我已经读过将它放在application.js中,但是当我这样做时,没有任何反应。按钮保持禁用状态。有谁知道我错过了什么?

2 个答案:

答案 0 :(得分:0)

看起来你删除了那些需求行:

// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

答案 1 :(得分:0)

您编写的javascript位于/public/javascripts/application.js。您还需要/ public / javascripts /中的jquery.js或jquery.min.js的副本,或者您需要包含一个公开可用的版本。确保在application.js。

之前在<head>中加载了jquery

示例:

<%= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js', 'application' %>