1

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

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

my_form = $("#the_id_of_the_form");

然后我创建我的 Ajax 请求:

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

非常感谢。

4

4 回答 4

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"
  });
});
于 2012-08-16T07:49:56.607 回答
1

不要对 url 进行硬编码,而是使用存储在表单中的 url。

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

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

希望这可以帮助。

于 2012-08-16T09:01:15.020 回答
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)
        }
      });
    }
于 2012-08-16T07:46:50.063 回答
0

尽量不要使用 $.post 或 $.get,它不灵活,在调试和重构时会造成麻烦/

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

或许:

$.ajax({
  url: 'only_hardcore_path/',
  type: 'POST',
  data: my_form.serialize()
});
于 2012-08-16T07:52:01.777 回答