0
我認爲這應該是非常簡單的,但無法弄清楚。客戶端變量與Rails/JS
我試圖通過單擊按鈕來添加一些表單域,但我有一個限制,並且每個新域都必須被編號。所以我必須在客戶端有一個櫃檯。
我被困在第一步,我無法在客戶端做一個計數器變量。我很確定我的代碼沒有執行,因爲我甚至沒有得到「加載」消息。
但我不知道爲什麼我的javscript不工作。我得到以下錯誤在控制檯上:
Uncaught ReferenceError: addQuickReply is not defined
at HTMLAnchorElement.onclick
當我添加的功能buyers.coffee功能:
@addQuickReply = (counter) ->
alert("counter is:"+counter)
我得到這樣的警告:
counter is:undefined
/視圖/買家/answer.html.erb
<div class="col-md-8 col-md-offset-2">
<h3>Responder <%= @buyer.name %></h3>
<ul class="nav nav-pills">
</li>
<li role="presentation" id="quick-button">
<%= link_to 'Quick Reply', load_form_path(id: @buyer.id, type: "quick"), method: :post,
remote: true %>
</li>
</ul>
<div id="form-container">
</div>
</div>
/views/buyers/load_form.js.erb.html
document.getElementById('form-container').innerHTML = '<%= j render(@type) %>';
/views/buyers/_quick.html.erb
</br>
<%= javascript_include_tag "load_quick_reply" %>
<%= form_tag("/answers/quick", method: "post", class: "form-horizontal") do %>
<%= hidden_field_tag("type", "quick") %>
<%= hidden_field_tag("buyer_id", @buyer.id) %>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="title" class="col-sm-2 control-label">Texto</label>
<div class="col-sm-10">
<%= text_field_tag(:text,nil, class: "form-control") %>
</div>
</div>
</div>
</div>
<div class="replies">
<%= render partial: 'quick_each', locals: {number: 0} %>
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group">
<a class="btn btn-primary" onclick="addQuickReply()">New Reply</a>
<%= submit_tag("Enviar" , role: "button", class: "btn btn-info") %>
</div>
</div>
</div>
<% end %>
<script type="text/javascript">
alert("loaded");
var counter=0;
var container = document.getElementById("replies");
function addQuickReply(){
counter++;
alert("counter is :"+counter);
}
</script>
我想我的問題是關於代碼的遠程執行和頁面的更新。出於某種原因(我不知道這是否預計會發生),只有最初加載頁面的JS函數才能執行。問題在於腳本是在單擊按鈕後加載到div中的部分內部。此代碼不會執行。有關這個的任何線索? – mknarciso