Ajax日期问题选择onchange值

时间:2011-01-05 13:57:50

标签: ruby-on-rails

当我在date_select上使用AJAX时,值仅作为参数传递已更改的值 但我也需要每个领域的价值观。

实施例

DATESELECT

2011年6月5日=>更改为2011年6月6日,但AJAX VALUE仅传递参数值“6”。

我需要日,月和年。

我的代码 风景     <%form_for(@ operation,:url => submit_cancellation_admin_operation_path)do | f | %GT;       <%= f.error_messages%>

  <p>Fecha de Pago:<br/><br/>
    <%= date_select("", :payment_date,  {:start_date => Time.now - 10}, {:onchange =>"#{remote_function(:url => {:controller => 'operations', :action => "update_payment_date"}, :with => "'payment_date='+value")}"}) %>
  </p>

<%  end  %>

控制器

  def cancel
    @operation        = Operation.find(params[:id])
    last_pagare       = Pagare.find(:first, :conditions => "operation_id = #{@operation.id} AND state <> 'cancelled'")
    #The condition unless is because the last_pagare could be nil if the operation is totally cancelled 
    @punitive_ammount = @operation.get_punitive(DateTime.now.to_date, last_pagare.expiration_date.to_date) unless last_pagare.nil?
  end

  def update_payment_date
    #Here I take the params 
  end 

由于

1 个答案:

答案 0 :(得分:0)

我使用jQuery来解决这个问题。倾听(或阅读)您的建议的最佳解决方案(借口我使用谷歌翻译为这个短语)。

<%= date_select("", :payment_date, {:start_date => Time.now - 10}, {:onchange =>"#{remote_function(:url  => {:controller => 'operations', :action => "update_payment_date", :id=> @operation.id},
                              :with => "'payment_date_1i='+$j('#_payment_date_1i').val()+'&payment_date_2i='+$j('#_payment_date_2i').val()+'&payment_date_3i='+$j('#_payment_date_3i').val()")}"}) %>