在Rails 3之前,我使用此代码动态观察字段并将该字段中的数据传递给控制器:
<%= observe_field :transaction_borrower_netid,
:url => { :controller => :live_validations, :action => :validate_borrower_netid },
:frequency => 0.5,
:update => :borrower_netid_message,
:with => "borrower_netid" %>
我正在尝试更新该代码以使用Jquery和Rails 3,但我无法让它工作。我更新了 routes.rb 以包含
match "/live_validations/validate_borrower_netid" => "live_validations#validate_borrower_netid", :as => "validate_borrower"
我正在尝试观察该字段并使用以下方式进行必要的调用:
jQuery(function($) {
// when the #transaction_borrower_netid field changes
$("#transaction_borrower_netid").change(function() {
// make a POST call and update the borrower_netid_message with borrower_netid
$.post(<%= validate_borrower_path %>, this.value, function(html) {
$("#borrower_netid_message").html(html);
});
});
})
但它不起作用。我的Javascript和Jquery技能严重缺乏,所以任何人都可以提供的帮助将非常感激。谢谢!
答案 0 :(得分:2)
您需要将<%= validate_borrower_path %>
包装在引号中:
$.post("<%= validate_borrower_path %>", this.value, function(html) {
答案 1 :(得分:2)
我最终使用了以下内容:
$('#transaction_borrower_netid').live('change', function() {
// when the #transaction_borrower_netid field changes
// make a POST call and replace the content
var netID = $('#transaction_borrower_netid').val();
$.post("/live_validations/validate_borrower_netid", { borrower_netid: $('#transaction_borrower_netid').val() }, function(html) {
$("#borrower_netid_message").html(html);
});
})