我在edit.html.erb頁面下面的表格Ruby on Rails的jQuery的按鈕,然後單擊填充text_field
<%= form_for(@device) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :description %>
<%= f.text_area :description, :rows => "5" %>
<%= f.label :device_identifier %>
<%= f.text_field :device_identifier, :value => @device.device_identifier, :readonly => true, :class => "d-id", :id => "deviceIDfield" %>
<%= button_tag "New device identifier", :id => "deviceIDbutton", :class => "btn btn-small btn-inverse", :type => "button" %>
<%= f.submit "Save changes", :class => "btn btn-large btn-primary", :id => "white" %>
<% end %>
當上「新設備標識符」點擊我想要的:device_identifier場再生它的價值目前通過Ruby方法SecureRandom.urlsafe_base64進行設置。這只是生成一個隨機的base64編碼的字符串。我一直試圖通過jQuery來做到這一點,然而由於我是Ruby on Rails和JQuery的新手,所以遇到了麻煩。
我設置了一個名爲shared.js.erb的文件,它位於我的javascripts目錄中。在這裏,我有以下代碼...
$(document).ready(function(){
$('#deviceIDbutton').click(function() {
$("#deviceIDfield").val('<%= SecureRandom.urlsafe_base64 %>');
});
})
這工作我第一次單擊該按鈕(即它與一個新的字符串更新device_identifier場),但是停止後,這方面的工作。我認爲這是因爲SecureRandom.urlsafe_base64被調用一次(當文檔準備好時?),而不是每次單擊該按鈕。有人可以幫助我嗎!,我一直對此感到頭痛太久。
我很不確定一些事情,比如爲什麼我不需要使用:remote => true在任何地方,如果我要用它來放置它?
此外,我並不確定我對jQuery應該去哪裏有正確的想法,儘管它似乎可以在我創建的shared.js.erb文件中工作,但如果某些人可以推薦更好/更自然的方式,這將是偉大的。
還值得一提的是,我在我的new.html.erb文件中有同樣的按鈕,我想要應用相同的功能。
非常感謝!
本
有關使用JQuery.get()調用控制器方法的一些示例代碼的機會?謝謝 – user1344048 2012-04-19 14:25:33
爲此添加了對其他SO線程的引用。讓我知道如果你需要進一步的幫助 – Christian 2012-04-19 14:31:38
我仍然堅持這個問題......這種方法似乎有點冗長和不自然。我是否需要添加路線到我的路線文件?爲什麼使用jQuery填充點擊文本框這麼簡單?有些東西看起來不正確。 – user1344048 2012-04-19 17:13:03