如何在Javascript函数中使用Ruby传递html值
How to pass html values in Ruby within a Javascript function
我有一个视图页面,其中用户输入一个数字并单击generate以在同一页面中基于此输入获取表单。我在主视图中使用javascript:
<div class="label-field-pair"><%= "#{t('total')} #{t('amount')}" %>:
<%= form.text_field :total, :value =>precision_label(@total_pay.to_f) , :disabled=> true , :id=>'total' %></div>
<div class="label-field-pair">
<label for="student_grade"><%= t('no_payments') %><span class="necessary-field">*</span> </label>
<input type="number" min="1" max="12" step="1" value="1" name="no_payments" id="no_payments"> </div>
<%= form.hidden_field :no_payments, :id=>'payments' %>
<%= form.hidden_field :total_pay, :id=>'total_pay' %>
<%#= submit_tag "", :value => "► #{t('generate')}", :class => "submit_button", :disable_with => "► #{t('please_wait')}" %>
<%#= render :partial => 'distribute_payments', :locals => {:no_payments=>2, :total => 30000 , :guardian=>@guardian.id} %>
<button type="button" id="gen" onClick="generate()" style="display: block">Generate</button>
<div id="payments_distribute"></div>
<%end%>
<script type="text/javascript">
function generate() {
var t = document.getElementById("total").value;
var n = document.getElementById("no_payments").value;
j('#total_pay').val("<%= @total_pay %>");
document.getElementById("gen").style.display = "none";
<%="#{remote_function(:url => {:action => "distribute_payments", :id=>@guardian.id,:total_pay=>@total_pay}
)}"%>
}
</script>
这是我的局部视图的动作:
def distribute_payments
@total_amount=params[:total]
@no_payments=params[:no_payments]
@total_payment=params[:total_pay]
@guardian = Guardian.find(params[:id])
@students=Student.find_all_by_sibling_id(@guardian.ward_id)
render(:update) do |page|
page.replace_html 'payments_distribute', :partial=>'distribute_payments', :total_pay=>@total_payment, :no_payments=>@no_payments
end
end
这里的问题是,我需要将"no_payments"的值与参数传递给我的局部视图,我不知道如何从我的Javascript函数(remote_function)中做到这一点。我试图使用render_partial与提交按钮,但我不能打开局部视图在同一页面。你可以检查我的问题在这里:Rails:渲染部分从控制器
您需要使用Ajax:
<script type="text/javascript">
function generate() {
var t = document.getElementById("total").value;
var n = document.getElementById("no_payments").value;
var id="<%= @guardian.id %>"
j('#total_pay').val("<%= @total_pay %>");
document.getElementById("gen").style.display = "none";
j.ajax({
type: 'POST' ,
url: '<%= url_for :action => "distribute_payments" %>',
data : {
'no_payments' :n,
'total_payment' :t,
'id' :id
},
beforeSend : function() {
},
success : function() {
j("#payments_distribute").html(data)
}});
}
</script>
相关文章:
- 从 JavaScript 调用 ruby 方法或从 RoR 中的视图中传递参数
- 将变量从Javascript传递到Ruby on Rails
- 如何将javascript变量传递到嵌入式ruby中
- 在erb文件中调用Ruby方法时传递参数
- 如何使用AJAX监控ruby控制器传递到视图html的实例变量
- Javascript嵌入ruby渲染部分本地调用,如何传递变量's值
- 如何在轨道上传递 ruby 将参数从表单传递到 jQuery 脚本
- 如何在Javascript函数中使用Ruby传递html值
- JavaScript有像Ruby中的ARGV那样通过终端行传递参数的方法吗?
- 如何传递Ruby on Rails 'form_for'元素到Javascript函数
- 无法传递字符串给onClick函数:Ruby on Rails
- 是否有一种方法将javascript变量传递到html.erb中的ruby方法
- Ruby和Javascript:传递一个Ruby数组作为Javascript变量
- 将2d数组从ruby传递到javascript
- Rails 3:将字符串从Ruby传递到Javascript
- 将信息从ruby传递到js脚本标签
- 通过Ruby On Rails中jquery的onclick函数传递对象的id
- 如何传递一个javascript全局变量到requirejs, ruby on rails
- Ruby on rails -如何通过javascript传递解析json值
- Rails:如何将数据从Ruby传递到Javascript