Ajax提交时没有:remote =>真正

时间:2012-08-16 07:32:57

标签: ruby-on-rails ruby jquery

我的应用程序中有一个表单需要通过Ajax(JQuery)提交,但是需要从我的JavaScript远程提交(即我不能用户:remote => true )。

我可以在我的JavaScript中找到我的表单没问题:

my_form = $("#the_id_of_the_form");

然后我创建了我的Ajax请求:

$.post('hardcoded path?', function(data) {
  // how would I serialize my parameters?
});

非常感谢。

4 个答案:

答案 0 :(得分:2)

来自jquery api

示例:使用ajax请求发送表单数据

$.post("test.php", $("#testform").serialize());

在你的情况下,它可能就是这样。

$('#your_form').submit(function(event) {
  event.preventDefault();  
  $.ajax({
    type: "POST",
    url: $(this).attr('action'),
    data: $(this).serialize(),
    dataType: "JSON"
  });
});

答案 1 :(得分:1)

请勿对网址进行硬编码,而应使用表单中存储的网址。

您可以按照以下方式执行此操作:

$("#the_id_of_the_form").submit(function() {
    $.post({
      url: $(this).attr('action'),
      data: $(this).serialize()
    });
});

希望这有帮助。

答案 2 :(得分:0)

使用jQuery(<FORM_ID>).ajaxSubmit

您的表单应该类似于

<%= form_for @user,:url=>{:controller=>:logins, :action => 'sign_up'}, :html=>{ :onSubmit => "return checkSignupValidation()",:id=>"signup_form"}  do |f|%>

<% end %>

你的js

    function checkSignupValidation()
    {
      jQuery('#signup_form').ajaxSubmit({
        url:"/logins/sign_up",
        iframe: true,
        dataType: 'script',
        success: function(data){
            //console.log(data)
        }
      });
    }

答案 3 :(得分:0)

尽量不要使用$ .post或$ .get,它不敏捷并导致调试和重构中的麻烦/

$.ajax({
  url: 'only_hardcore_path/' + my_form.serialize(),
  type: 'POST'  
});

或可能是:

$.ajax({
  url: 'only_hardcore_path/',
  type: 'POST',
  data: my_form.serialize()
});