2011-08-17 93 views
1
真正

所以我有一個簡單的Ajax調用的頁面:Rails 3中,如何防止AJAX遠程調用(jQuery的)用的link_to和:遠程=>與JS

= link_to 'click me', my_path, :onclick => "if ($('#go').val() == "ok") { alert('going'); } else { return false; }", :remote => true do 

這一切正常,我只有當我的ID爲「go」的字段在那裏可以正常使用時,纔會看到警報......但問題是無論如何,每次都會觸發遠程操作。

如果這不是一個遠程鏈接,它會工作得很好,沒有通過鏈接,但它似乎沒有像a:remote => true一樣的行爲?

我該如何達到預期的效果?

感謝,

亞歷

回答

2

這裏的問題是,Rails的UJS驅動會看到data-remote,然後執行,因爲在rails.js一個function like this的作用,從而可能嘗試設置該屬性OM內的鏈接JS並刪除:remote => true。這可能工作,但我不知道如果rails.js將綁定到正確或不。

另外,一旦完成調試,可以考慮將這個JS放在application.js中,這樣你就不會在你的控制器中有內聯JS。

+0

是的,JS是內聯的,只是爲了這個例子。我真的希望我不必手動編寫Ajax調用... – Alex

+0

它不是一個手動的Ajax調用。你只需要在鏈接標籤上設置正確的'data-remote'。 –

+0

對不起,我不明白你的意思?因爲如果我手動設置數據遠程?而不是調用:remote => true,那麼這將如何改變軌道上的任何事情? – Alex