Ruby on rails表单提交给js

时间:2013-01-18 09:44:25

标签: jquery ruby-on-rails forms

我在Ruby on Rails上有这个代码:

 simple_form_for :projectssss, :html => {:id => 'projectsssss_opt'} do |f|            
  f.input :name, :label => ("name")                                  
  f.input :title, :label => ('title')                                      
  f.submit "Submit", :id => 'btn'     

这个Javascript:

$.ajax({                                                                     
  type: "POST",                                                            
  url: api_url,                                                            
  data: [ what to put here ???],                                                               
  success: function ( status ) {                            
 alert("HAHA");                                                                                                       }});             

如何从Ruby on Rails上的JS中的简单表单中获取数据?

1 个答案:

答案 0 :(得分:0)

ajax帖子中的数据属性是你参考的地方。

假设您在数据项目值中有项目ID,如此

<input class="form-input" id="" data-project="<%=@project.id.to_s %>">

然后你可以这样做

$(".form-input").focusout(function(){

    var project     = $(this).attr("data-project")
    var params      = {project_id: project}

    $.ajax({
        url: "/some_url/",  
        type: "POST",
            data: params,
            chache:false,
            dateType: "JSON"
         });    
});

如果您有提交的表单,我会这样做。将其添加到application.js文件的顶部

jQuery.ajaxSetup({ 
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

添加此功能

jQuery.fn.submitWithAjax = function() {
  this.submit(function() { 
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  })
  return this;
};

当dom准备就绪时,请调用该函数。

$(document).ready(function() {
  $('#projectsssss_opt').submitWithAjax()
})