0

我的表单跨越多个 jquery 移动页面,都在一个文件中,并由该表单包装

新的.html.erb

<%= form_tag submit_path, :method => :post, :remote => true do%> 

创建.js.erb

alert("Hello");
<% debugger %>
$.mobile.changePage("#confirm");

当我的控制台在调试器上停止时,create.js.erb 被击中,但警报永远不会触发,jquery mobile 命令也不会。

我的网址从/new#confirm到 只是/new

我可以用普通的 rails 形式做(看似)完全相同的事情,我得到了警报。

4

1 回答 1

0

显然,您需要完全使用 Ajax 来执行此操作,以使 rails 正确响应并执行 js.erb:

在您的表单中添加

"data-ajax" => "false"

然后

$('#submit_button').click(function(){
  handleSubmit();
  return false
});

function handleSubmit() {
  $.ajax({
    url: "/post_url",
    type: 'POST',
    cache: false,
    beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); $.mobile.showPageLoadingMsg("a", "Submitting"); }, 
    data: $("#the_form").serialize(), 
    success: function(data){
      handleResponse(data):
    }
  });
}
于 2013-07-02T21:27:59.687 回答