Rails:Javascript e.preventDefault();工作不正常

时间:2018-01-25 09:38:59

标签: javascript jquery ruby-on-rails

我一直试图解决这个问题很长一段时间,但到目前为止没有运气。所以任何帮助都将非常感谢!

我在动态标签中有两个搜索<CheckBox IsEnabled="False" IsChecked="{Binding IsSelected, Mode=OneWay}"/>

form_tags

'pages / search'表格部分:

<div id="tabs">
  <ul class="nav nav-tabs" id="prodTabs">
    <li class="active"><a href="#search">Search</a></li>
    <li><a href="#other"  data-toggle="tab">Other</a></li>
  </ul>

  <div class="tab-content">
    <div class="tab-pane active" id="nearby">
      <%= render 'pages/search' %>
    </div>

    <div class="tab-pane" id="other">
      <%= render 'pages/search_other' %>
    </div>

<script>
$('#tabs').on('click','.tablink,#prodTabs a',function (e) {
    e.preventDefault();
    var url = $(this).attr("data-url");

    if (typeof url !== "undefined") {
        var pane = $(this), href = this.hash;

        // ajax load from data-url
        $(href).load(url,function(result){
            pane.tab('show');
        });
    } else {
        $(this).tab('show');
    }
});
</script>

'pages / search_other'形成部分:

<div id="form">
<%= form_tag url_for(:controller => 'pages', :action => 'search'), :method => "get" do %>
  <%= text_field_tag :search, params[:search], autofocus: true, placeholder: "Enter keyword to search" %>
  <%= submit_tag "Search", name: nil, :style => "display: none;" %>
  <%end%>
  </div>

如您所见,我在控制器内部有两个不同的动作,每个搜索表单有两个不同的路径。到目前为止,一切都很完美!

但是,如果我仅针对<div id="other"> <%= form_tag url_for(:controller => 'pages', :action => 'search_other'), method: :get do %> <%= text_field_tag :search_other, params[:search_other], autofocus: true, placeholder: "Enter keyword to search" %> <%= submit_tag "Search", :style => "display: none;" %> <%end%> </div> 实现以下内容...会显示地理定位弹出窗口,但在我点击允许'pages/search' form partial GETS之后,然后重定向到结果搜索,这很奇怪,当然是错误的。我不知道为什么会发生这种情况!

我的目标是在我提交'pages/search_other' form partial后出现地理定位弹出窗口,在我点击后,它会将我重定向到该搜索表单的结果:

'pages/search' form partial

search.js

<script>
$('#form').submit(function(e) {
    e.preventDefault();
    getGeoLocation();

});
</script>

0 个答案:

没有答案