2010-07-27 89 views
0

好吧我現在在Ruby on Rails後面運行了一個廣泛的Ruby應用程序。此應用程序需要表單輸入,但我不想在更新文本框時刷新頁面。我的意思是:如何在不提交表單的情況下使用ruby訪問表單元素值?

我有一個窗體有兩個文本框,一個叫做「starttime」,一個叫做「endtime」。我不知何故需要在按下按鈕時將這些文本框(用戶鍵入的內容)的值輸入到ruby中。是否有某種等效於JavaScript的document.form.starttime.value命令但對於Ruby?或者有什麼方式提交表單數據,檢索它,但不刷新頁面,如使用Ajax?我知道ajax用於動態操縱DOM而不刷新頁面,但我真的只需要檢索數據。任何幫助將不勝感激,我根本無法找到任何地方。

+0

好的,有沒有辦法使用會話變量做到這一點? – Daryl 2010-07-28 16:46:23

回答

1

你可以用jQuery很容易地做到這一點。給開始時間和結束時間表單元素一個不同的ID(我使用下面的startDateendDate),並且您可以輕鬆地檢索它們,然後將數據發送到Rails操作,以便在後臺處理它們,並在必要時更新DOM當您點擊一個按鈕(下面假定輸入按鈕ID爲SendDateValues)時,將顯示任何相關數據。

事情是這樣的:(未測試)

<script type="text/javascript"> 
//<![CDATA[ 

$("#SendDateValues").click(function() { 
    $.ajax({ 
    url: '/SomeController/ProcessDateData/", 
    data: 'startDate=' + $("#startdate").val() + "&endDate=" + $("#endDate").val(), 
    success: function(html) { //DO SOMETHING WITH THE RESULT }, 
    type: 'post' 
    }); 
}); 

//]]>$ 
</script> 

玩的結果...使用螢火蟲或類似檢查什麼獲取傳遞的東西。檢查你的Rails事件日誌,看看你的動作得到了什麼數據。

+0

感謝您的快速響應。如果我使用這樣的東西,它不會移動瀏覽器到另一個頁面嗎?在檢查文本框的值之後,我需要保持在同一頁面上並操作另一個對象。 – Daryl 2010-07-27 23:38:46

+0

這就是AJAX調用的美妙之處 - 它會在後臺發出請求。用戶可能會在其狀態欄中看到活動,但除非您明確更改它(成功功能中的某個位置),否則在它們所在的頁面上沒有任何更改。 – 2010-07-27 23:39:45

+0

啊好吧,我會試試這個,非常感謝。 – Daryl 2010-07-27 23:42:25

相關問題