我在向数据库提供数据时实施了简单的搜索,因此我可以查看名称中的记录是否已存在:
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);
});
答案 0 :(得分:1)
好的,所以我做了一些研究,发现了这个:click
基本上在
中添加我的功能$(document).on('turbolinks:load', function() {
...your javascript goes here...
});
让一切按预期工作!