1

私はレールでJqueryクライアントの検証を手に入れようとしています..

私の次のコードは正常に動作します http://jsfiddle.net/hr1383/5CFRB/1/

「エラーメッセージを正しく表示する」

今、私は同じことをしようとしています。それぞれの JS と CSS をどこに配置すればよいかわからないため、最初に application.html.erb ファイルを配置することにしました。

<html>
  <head>
    <title>Umvox</title>
      <%= stylesheet_link_tag    "application" %>
      <%= javascript_include_tag "application" %>
      <%= javascript_include_tag "jquery.validate" %>
      <%= javascript_include_tag "jquery.validate.min" %>
      <%= javascript_include_tag "jquery-1.7.2" %>
      <%=  javascript_include_tag  "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"%>
       <%=  javascript_include_tag  "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"%>
     <%= javascript_include_tag :defaults %>
     <%= csrf_meta_tags %>

      <script type="text/javascript">
         $(document).ready(function() {
       $("#company_form").validate({
            rules: {
                "company": {required:true}
             },
             messages:{
                company: "Enter Company name"
              }
           });
         });​
       </script>
      <style type="text/css">
        #company_form {background-color: aqua}
        #company_form label { width: 250px; }
        #company_form label.error, #company_form input.submit { margin-left: 253px; }
    </style>
 </head>
 <body>
   <%= render "shared/dashboard_button_login" %>
   <%= yield %>
 </body>
</html>

そして _form.html.erb の私の部分には含まれています

<%= form_tag("/locations/search" , :remote=> true, :id=>"company_form",        :name=>"company_form", :form_to_validate=>'location') do  %>
<table>
   <tr>
   <th>Company</th>
   <th>City</th>
   <th>Country</th>
   <th>ZipCode</th>
  </tr>
  <tr>
     <td><%= text_field_tag :company %></td>
     <td><%= text_field_tag :city %></td>
     <td><%= text_field_tag :country %></td>
     <td><%= text_field_tag :zipcode %></td>
      <td><%= submit_tag 'search'%></td>
  </tr>
</table>

次のフォームは、次のように html に変換されます。

http://jsfiddle.net/hr1383/5CFRB/1/

これは機能していないようで、エラーメッセージを表示せずに常にサーバー呼び出しを行っています。

なぜそれが起こっているのですか?フォームは特定のモデル オブジェクトに属していないため、ここに js を配置する方法がわかりません。

更新: application.html.erb を変更して、必要な 2 つのファイルのみを含めました。

<html>
  <head>
    <title>Umvox</title>
      <%= stylesheet_link_tag    "application" %>
      <%= javascript_include_tag "application" %>
      <%= javascript_include_tag "jquery.validate" %>
      <%= javascript_include_tag "jquery-1.7.2" %>
       <%= csrf_meta_tags %>

      <script type="text/javascript">
         $(document).ready(function() {
       $("#company_form").validate({
            rules: {
                "company": {required:true}
             },
             messages:{
                company: "Enter Company name"
              }
           });
         });​
       </script>
      <style type="text/css">
        #company_form {background-color: aqua}
        #company_form label { width: 250px; }
        #company_form label.error, #company_form input.submit { margin-left: 253px; }
    </style>
 </head>
 <body>
   <%= render "shared/dashboard_button_login" %>
   <%= yield %>
 </body>
</html>

ありがとうハーシット

4

2 に答える 2

2

うーん、私はRubyの専門家ではありませんが、jquery.validateとjquery.validate.min、および2つの異なるバージョンのjqueryの両方を含めているようです。それはあまり良くありません。しかし、好奇心から、jquery の後に jquery の検証をポップしてみませんか?

于 2012-11-30T19:27:45.403 に答える
1

jquery.validate と jquery.validate.min ファイルの両方を含める必要はありません。それらの唯一の違いは、前者がデバッグ バージョンであり、後者が圧縮バージョンであることです。

また、レール バージョンが非常に新しい場合、jquery は常にレールによって使用される js ライブラリであるため、jquery を明示的に含める必要はありません。(すみません、正確なバージョンは覚えていません)

于 2012-12-01T07:03:47.027 に答える