2011-10-06 34 views
1

我正在rails 2.3.8上開發項目,我需要在模型對話框的下拉菜單中獲取選定的項目。請有人解釋如何在軌道上的模型對話框中做到這一點?如何在導軌2.3.8上的模型對話框中獲取選定的項目?

+0

這個問題非常含糊,似乎是一個與Rails相關的JavaScript問題。您需要定義「獲取所選項目」的含義。你想立即提交價值嗎?或者將其存儲並稍後提交?另外,你想採取什麼行動?例如模式框關閉時或用戶更改選擇時。 –

+0

當用戶在下拉菜單中選擇特定的項目時,我需要更新特定的div。但我嘗試使用observe_field來完成,但它對我無效。我正在使用「collection_select」下拉菜單。所以我需要知道是否有可能在軌道上。謝謝 –

+0

是的,這很有可能。我幾乎沒有Prototype的經驗,而且很久以前,所以恐怕在設置observe_field時我沒有太多幫助。然而,我首先想到的是事件回調沒有被註冊或者JavaScript錯誤。你可以驗證你的JavaScript代碼是否在下拉框更改時執行?如果是這樣,是否有任何錯誤發生? –

回答

0

將與一些調整工作,因爲你提出任何代碼(給代碼,人們將能夠給出具體的答案)的一個例子:

在視圖像這樣由一個表單輔助生產:

<select id="user_role_ids" name="user[role_ids]"> 
<option value="1" selected="selected">Reader</option> 
<option value="2">Author</option> 
</select> 
<div id="role_output"></div> 

在JS與jQuery像這樣在選擇提取的名稱或型號的ID:

<script type="text/javascript" charset="utf-8"> 
$("select").change(function() { 
    var text = $('#user_role_ids option:selected').text() 
    var value = $('#user_role_ids option:selected').val() 
    $('#role_output').html(text+" =>"+value) 
}); 
</script> 

沒有必要在所有除非你想爲三軌涉及gger在控制器的動作爲好,從jQuery的情況後,爲它專門設置了一個行動,而不是提取值:

$.post('/controller/my_action', ...); 

這是所有的observe_field做,取決於你想要什麼,你可能不需要它。

相關問題