Rails / jQuery - 通过数据库实时搜索

时间:2016-09-09 17:49:39

标签: jquery ruby-on-rails

我在向数据库提供数据时实施了简单的搜索,因此我可以查看名称中的记录是否已存在:

function doneTyping() {
  $.ajax({
    url: $('#existance_route').val(),
    type: "GET",
    dataType: "json",
    data: { place_name: $name_input.val() },
    complete: function() {},
    success: function(data, textStatus, xhr) {
      setupTextfieldsAddonsWith(data);
      console.log("Response received!");
    },
    error: function() {
      console.log("AJAX error!");
    }
  });
};

setupTextfieldsAddonsWith(data)只是告诉用户(通过UI)记录是否存在。

但是我有一个问题。有时,当我转到链接创建新记录时,它只是不起作用。但后来我手动重新加载页面并开始工作。

有谁知道为什么我会收到这样的行为?

PS。如果有更明智的"用于完成我描述的事情的插件请告诉我。我只找到了客户端验证,但它现在正是我需要做的

修改

这是我触发doneTyping的方式(来自其中一个SO问题的代码):

var typingTimer;
var doneTypingInterval = 500;
// place_name is an id bind to a text_field
$('#place_name').on('keyup', function() {
  clearTimeout(typingTimer);
  typingTimer = setTimeout(doneTyping, doneTypingInterval);
});

$('#restaurant_name').on('keydown', function () {
  clearTimeout(typingTimer);
});

1 个答案:

答案 0 :(得分:1)

好的,所以我做了一些研究,发现了这个:click

基本上在

中添加我的功能
$(document).on('turbolinks:load', function() {

  ...your javascript goes here...

});

让一切按预期工作!