Javascript RubyonRails中的AJAX jQuery表单验证

Javascript RubyonRails中的AJAX jQuery表单验证,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我想检查输入的数据在数据库中是否可用。我可以检查一下。但在检查后,它没有向我显示消息。但如果我放一个警报1;在AJAX调用之后,它工作得很好 <%= form_for(@project) do |f| %> <div class="field"> <%= f.label "Enter Project Name" %><br /><br /> <%= f.text_field :name, :id=> "p

我想检查输入的数据在数据库中是否可用。我可以检查一下。但在检查后,它没有向我显示消息。但如果我放一个警报1;在AJAX调用之后,它工作得很好

<%= form_for(@project) do |f| %>
  <div class="field">
    <%= f.label "Enter Project Name" %><br /><br />
    <%= f.text_field :name, :id=> "project_name" %>
    <span id="project_name_error" style="display:none;"></span>
  </div>
  <div class="actions">
    <%= f.submit "Create Project", :onclick => "return validate_project();" %>
  </div>
<% end %>
jquery代码


如果我取消注释第一个警报和第二个警报,那么我可以看到第二个警报出现在第一个警报之前。我的代码也很好用。任何帮助。。请

您如何在后端进行验证?只有标准数据库。存在吗?或者什么的?当你取消注释第一个和第二个警报时,你只需要显示一个,或者同时显示两个?如果两者都存在,您确定条件会允许触发第一个警报吗?如果我取消对警报的注释,则。。第二个警报在第一个警报之前。并且消息名已经存在,并且也正确出现。可能是.get函数在慢慢地运行?您是否尝试过将警报设置为第一警报;就在if语句下面?如果删除最后2个返回怎么办?有效吗?
   <script>
        function validate_project(){
            var check = 0;
            if($("#project_name").val() == '' || ($("#project_name").val() == null)){
                $("#project_name_error").show();
                $("#project_name_error").html("<font color='red' size='1'>Please enter a project name</font>");
                return false;
            }
            if ($("#project_name").val() != ''){
                $.get( "validate/"+$("#project_name").val(), function( data ) {
                    $("#project_name_error").show();
                    $("#project_name_error").html("<font color='red' size='1'>Name Already Exist</font>");          
                    check = 1;
                    return false;
                });
                //alert("1st alert")
                return false;
            }
            //alert("2nd alert")
            return true;
        }

    </script>