我有这个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'}
我已使用, :remote => true, :method => :post
但我不知道如何添加有条件来抓住价值......任何想法
答案 0 :(得分:1)
表示回调的所有AJAX特定选项都在Rails 3 link_to帮助程序中消失了。你必须编写自己的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/
答案 1 :(得分: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;
});