汉王做我呈现在轨3.0部分使用AJAX,单选按钮选择? [英] Hw do i render a partial in rails 3.0 using ajax, on radio button select?

查看:85
本文介绍了汉王做我呈现在轨3.0部分使用AJAX,单选按钮选择?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试了一下AJAX的第一次,但没有获得成功,我想呈现的部分单选按钮选择使用AJAX,这里是我的code:

I try a bit of ajax first time but did not get success, i want to render a partial on radio button select using ajax, here is my code :

我的script.js:

My script.js:

$(document).ready(function(){
$.ajax({
  url : "/income_vouchers/income_voucher_partial?$('form input[type=radio]:checked').val()="+$('form input[type=radio]:checked').val(),
  type: "GET",
  data: { 
        type: $('form input[type=radio]:checked').val() 
      }
});

 });

income_voucher.js.erb

income_voucher.js.erb

$("#payment_mode").append('  

     <% if params[:type]== 'cheque' %> 
         <%= escape_javascript render :partial => "cheque" %>
     <% elsif params[:type]=='card' %> 
          <%= escape_javascript render :partial => "card" %>
     <% elsif params[:type]=='ibank'%> 
         <%= escape_javascript render :partial => "ibank" %>
      <% else params[:type] == 'cash' %>
    <% end %>
');

我的:

<script type="text/javascript" src="/javascripts/voucher.js"></script>
<%= form_for(@income_voucher) do |f| %>
  <%= render 'shared/form_error', :object => @income_voucher %>
 <div >   
            <%= radio_button_tag :transaction_type,'cash', :checked => true %>
            <%= f.label :transaction_type, "Cash", :value => "cash" %>
            <%= radio_button_tag :transaction_type,'cheque' %>
            <%= f.label :transaction_type, "Cheque", :value => "cheque" %>
            <%= radio_button_tag :transaction_type,'card'%>
            <%= f.label :transaction_type, "Card", :value => "card" %>
            <%= radio_button_tag :transaction_type,'ibank'%>
            <%= f.label :transaction_type, "Internet Banking", :value => "ibank" %>
          </div>
      <div id = "payment_mode">
          <% if params[:type]== "cheque" %> 
                <%= render :partial => "cheque", :f => f %> 
          <% elsif params[:type]=='card' %> 
                <%= render :partial => "card", :f => f %>
          <% elseif params[:type] == 'ibank'%> 
              <%= render :partial => "ibank", :f => f %>
          <% else params[:type] == 'cash' %> 
       <% end %>
     </div>
  <%= f.submit %>
<% end %>

和这里是我的控制器的方法:

and here is my controller method:

 class IncomeVouchersController < ApplicationController
def new
    @income_voucher = IncomeVoucher.new
    @invoices = current_company.invoices
    @income_voucher.build_payment_mode

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @income_voucher }
    end
  end
 def create
    @income_voucher = IncomeVoucher.new(params[:income_voucher])

   transaction_type = params[:transaction_type]
    payment_mode = nil
    if transaction_type == 'cheque'
      payment = ChequePayment.new(params[:cheque_payment])
    payment.amount = @income_voucher.amount
    elsif transaction_type == 'card'
      payment = CardPayment.new(params[:card_payment])
    payment.amount = @income_voucher.amount
    elsif transaction_type == 'ibank'
      payment = InternetBankingPayment.new(params[:internet_banking_payment])
    payment.amount = @income_voucher.amount
    else
      payment = CashPayment.new
    payment.amount = @income_voucher.amount
    end
    payment_mode = PaymentMode.new
    payment_mode.transactionable = payment

    @income_voucher.payment_mode = payment_mode
    respond_to do |format|
      if @income_voucher.save

        format.html { redirect_to(@income_voucher, :notice => 'Income voucher was successfully created.') }
        format.xml  { render :xml => @income_voucher, :status => :created, :location => @income_voucher }
      else

        format.html { render :action => "new" }
        format.xml  { render :xml => @income_voucher.errors, :status => :unprocessable_entity }
      end
    end

   def income_voucher_partial
       @payment_mode = PaymentMode.new(params[:payment_mode])
  end 
 end

我可以看到我的观点的形式,但选择当一个单选按钮,没有什么是仁德。任何帮助将是AP preciated

i can see my view form but when select a radio button nothing is rende. Any help would be appreciated

推荐答案

首先:所选择的方法 - 或者你使用远程的形式,或AJAX提交。如果您希望该用户选择单选按钮,然后点击提交来呈现.html.erb使用:

First of all: choose the method - or you using remote form, or ajax submit. If your want that user choose radio button AND click submit to render use in .html.erb:

form_for(@income_voucher, :remote => true)

删除的JavaScript和AJAX在.js.erb更改参数名称:transaction_type

remove javascript ajax and change param name in .js.erb to :transaction_type

如果您希望该用户choosse单选按钮,immidiately呈现移动的JavaScript阿贾克斯这样的单选按钮更改事件处理程序

If you want that user choosse radio button and immidiately render move javascript ajax to radio button change event handler like this

$(your_element).change(function(){
  $.ajax(){
    url : "/income_vouchers/income_voucher_partial",
    data: { 
      type: $('form input[type=radio]:checked').val() 
    }
  }
});

和删除PARAMS直接URL设置 - 在设置中的参数'数据:

and remove params setting from directly url - set params in 'data:'

这篇关于汉王做我呈现在轨3.0部分使用AJAX,单选按钮选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆