Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery验证插件未在rails中显示错误消息_Jquery_Ruby On Rails 3_Jquery Plugins_Jquery Validate - Fatal编程技术网

jquery验证插件未在rails中显示错误消息

jquery验证插件未在rails中显示错误消息,jquery,ruby-on-rails-3,jquery-plugins,jquery-validate,Jquery,Ruby On Rails 3,Jquery Plugins,Jquery Validate,我正在尝试在rails中使用Jquery客户端验证 我下面的代码运行良好 “正确显示错误消息” 现在我也在试着做同样的事情。 因为我不确定将各自的JS和CSS放在哪里,所以我决定先放在application.html.erb文件中开始 <html> <head> <title>Umvox</title> <%= stylesheet_link_tag "application" %> <

我正在尝试在rails中使用Jquery客户端验证

我下面的代码运行良好

“正确显示错误消息”

现在我也在试着做同样的事情。 因为我不确定将各自的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>

Umvox
$(文档).ready(函数(){
$(“#公司表格”)。验证({
规则:{
“公司”:{必填项:true}
},
信息:{
公司:“输入公司名称”
}
});
});​
#公司表格{背景色:浅绿色}
#公司表格标签{宽度:250px;}
#company_form label.error,#company_form input.submit{左边距:253px;}
而我的_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>
true,:id=>company\u form,:name=>company\u form,:form\u to\u validate=>location')do%>
单位
城市
国家
ZipCode
以下表单将转换为html,如中所示

这似乎不起作用,总是在不显示错误消息的情况下进行服务器调用

为什么会这样? 因为表单不属于某个模型对象,所以我不知道在这里放置js

更新:我将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-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>

Umvox
$(文档).ready(函数(){
$(“#公司表格”)。验证({
规则:{
“公司”:{必填项:true}
},
信息:{
公司:“输入公司名称”
}
});
});​
#公司表格{背景色:浅绿色}
#公司表格标签{宽度:250px;}
#company_form label.error,#company_form input.submit{左边距:253px;}
谢谢
Harshit

Ehrm,我不是ruby方面的专家,但似乎您包括了这两个方面:jquery.validate和jquery.validate.min,以及两个不同版本的jquery。那不太好。但是出于好奇,为什么不在jquery之后弹出jquery验证?

我同意povilasp,您不必同时包含jquery.validate和jquery.validate.min文件。 它们之间唯一的区别是前者是调试版本,而后者是压缩版本


除了,如果您的rails版本是全新的,您不必显式地包含jquery,因为jquery总是rails使用的js库。(对不起,我不记得确切的版本)

为什么要多次按错误的顺序加载文件?@Jani-你是说JS文件?我不确定订单和yup是否会删除那些不需要的。您的JSFIDLE选择的是Mootools而不是jQuery,但随后您将jQuery作为外部资源加载。请阅读如何正确使用jQuery和jQuery插件。