1

我有这个link_to_function

  = link_to_remote 'Populate Info From ID', :url => {:controller => 'something', 
  :action => 'populate_from_id'}, 
  :with => "'id=' + $('account_id').value + '&field_prefix=purchaser'", 
  :update => {:failure => 'account_id_error'}

我已经在 Rails 升级中转换了其中许多, :remote => true, :method => :post

但我不知道如何添加条件来获取价值......任何想法

4

2 回答 2

1

在 Rails 3 link_to 帮助器中,所有代表回调的 AJAX 特定选项都消失了。您必须编写自己的 javascript 来处理更复杂的远程操作,例如您的示例。

这是一个快速重写:

# Your template

= link_to 'Populate Info From ID', :url => {:controller => 'something', 
  :action => 'populate_from_id'}, :id => "#populate_info"


# In javascript, assuming jquery and 
# an element #account_id with a data-id attribute
$("#populate_info").on("click", function() {
  $.ajax({
    method: "POST",
    data: { id: $('#account_id').data("id"), field_prefix: "purchaser" }
    error: account_id_error
  });
  return false;
});

有用的博文:http ://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/ 这里有很多很棒的文档:http: //api.jquery.com/jQuery.ajax/

于 2012-09-25T01:43:20.543 回答
0

你打败了我我想出了这个

$('.populate_id').click(function(e){
  e.preventDefault();
  var url = $(this).attr('href'); 
  var failure = $('#' + $(this).attr('failure'));
  failure.html('');
  var element = $('#' + $(this).attr('element'));
  var id = element.val();
  var url_extra = 'account_id=' + id + '&field_prefix=purchaser';
  $.ajax({
      url: url,
      data: url_extra,
      type: 'post',
      error: function (data) {
        failure.html(data.responseText);
      }
    });
  return false;   
});
于 2012-09-25T01:50:42.487 回答