我在做什麼應該是非常簡單的,我有頁面顯示所有記錄,如果請求是http,並得到日期之間的recrods如果它是ajax。 頁面這裏怎麼看起來整個頁面得到張貼回來,即使與ajax [rails]
這是index.html.erb
<h1>Jobs History</h1>
<hr>
<div class="form-inline">
<div class="col-md-12">
<div class="col-md-4">
<%= label_tag(:start_date) %>
<div class='input-group date' id='datetimepicker2'>
<%= text_field_tag :start_date , "", {class:'form-control'} %>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="col-md-4">
<%= label_tag(:end_date) %>
<div class='input-group date' id='datetimepicker1'>
<%= text_field_tag :end_date , "", {class:'form-control'} %>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<a id="searchBtn" class="btn btn-skin btn-md" href="#">Search</a>
</div>
</div>
<div id="items_grid" >
<%= render partial: 'histories', locals: {bookings: @bookings} %>
</div>
<script>
$('#datetimepicker1').datetimepicker();
$('#datetimepicker2').datetimepicker();
$('a#searchBtn').click(function(){
$.ajax({
url: "<%= provider_history_index_path %>",
type: "GET",
data: {start_date: $('#start_date').val(), end_date: $('#end_date').val()},
success: function(resp){ }
});
});
</script>
非常正常的權利,這裏的控制器:
respond_to :html, :js
def index
if request.xhr?
respond_to do |format|
@bookings = current_user.booking_providers.where(visit_end_date: params[:start_date]..params[:end_date])
format.js
end
else
@bookings = current_user.booking_providers
end
這裏index.js.erb的
$("#items_grid").html("<%= escape_javascript(render partial: 'histories', locals: { bookings: @bookings}) %>");
問題是當我填寫日期並點擊搜索時,ajax啓動並確實渲染帶有新記錄的部分,但在此之後立即索引被調用,並且發生覆蓋新記錄的整頁回發。 我不知道爲什麼