0

私のフォームは、すべて 1 つのファイル内の複数の jquery モバイル ページにまたがっており、このフォームでラップされています

new.html.erb

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

create.js.erb

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

デバッガーでコンソールが停止すると create.js.erb がヒットしますが、アラートは発生せず、jquery モバイル コマンドも発生しません。

私のURLは/new#confirmちょうど/new

通常の Rails フォームで (一見) まったく同じことを行うことができ、アラートが表示されます。

4

1 に答える 1

0

Apparently you need to do this completely with Ajax to get rails to respond properly and have the js.erb execute:

In your form add

"data-ajax" => "false"

then

$('#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 に答える