我在做什么应该是非常简单的,我有页面显示所有记录,如果请求是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启动并确实渲染带有新记录的部分,但在此之后立即索引被调用,并且发生覆盖新记录的整页回发。 我不知道为什么