2016-09-09 5 views
0

を使用して、ライブ検索、私は私のデータベースに送りながら、私は簡単な検索を実現し、その名前のレコードが既に存在する場合、私は見ることができます:レール/ jQueryの - データベース

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。私が記述していることを行うための "賢明な"プラグインがある場合は、私に知らせてください。私はクライアント側検証が見つかりましたが、それは私が行う必要があり、まさに今です

EDIT

これは私が(SOの質問のいずれかからコード)doneTypingをトリガーする方法である:

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

どのようにトリガーを実行しているのですか? – sahil

+0

あなたの質問を更新しました@sahil – Ancinek

+0

ページの最初の読み込み時に、その機能は起動せず、ページを更新する必要があります。 '$(function(){// your code});'の中に関数を置いていますか?これはjQueryがロードされていることを確認します。 – sahil

答えて

1

[OK]をので、私はいくつかのより多くの研究を行なったし、この発見:

click

基本的に追加する私の機能を10

$(document).on('turbolinks:load', function() { 

    ...your javascript goes here... 

}); 

すべてが期待通りに機能します。

関連する問題