2013-06-12 5 views
0

Я хочу отправить форму через AJAX. Когда я отправляю форму, она должна отправить ajax и затухать в div с id stepTwo и затухать текущий div. Я использую jQuery 1.8.0, и у меня есть эта ошибка в моей консоли, когда я отправляю.Rails AJAX форма представления

NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)  [nsIDOMWindow.getComputedStyle] 
[Break On This Error] 

...=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({... 

Вот мой HTML:

<div id="stepOne"> 
<%= form_for @program do |f| %> 
    <div> 
    <label for="exerciseName">Title For Your Program</label> 
    <%= f.text_field :title, :name => "exerciseName", :required => "required", :maxlength => "40" %> 
    </div> 
    <div> 
    <label for="exerciseName">Detailed Info For Your Program</label> 
    <%= f.text_area :details %> 
    </div> 

<%= f.submit "Next Step", :class => "exbuttons button-small red rounded3", :id =>"stepOneButton" %> 
<% end %> 
</div> 

А вот мой контроллер

# POST/программы # POST /programs.json Защиту создать @program = Program.new (PARAMS [: progeram]) @ program.user_id = current_user.id

respond_to do |format| 
    if @program.save 
    if request.xhr? 
     render @program 
    else 
     redirect_to @program 
    end 
    else 
    if request.xhr? 
     render @program 
    else 
     flash[:error] = "Program could not be added" 
     redirect_to new 
    end 
    end 
end 
end 

И это мой Javascript файл

function stepOne(){ 
    $('#new_program').submit(function(event){ 
     event.preventDefault(); 
     var f = $(this); 
     f.find('input[type="submit"]').attr("disabled", true); 
     $.ajax({ 
      type: f.attr("method"), 
      url: f.attr("action"), 
      data: f.serialize(), 
      complete: function(){ 
       f.find('input[type="submit"]').attr("disabled", false); 
      }, 

      success : function(data){ 
       console.log(data); 
       $(this).fadeOut(); 
       $('#stepTwo').delay(400).fadeIn(); 
      }, 

      error : function(xhr, status){ 
       console.log(status); 
      } 
     }); 


    }); 
} 

ответ

0

NS_ERROR_FAILURE, кажется, указывает, что URL является неправильным или контроллер шины бьет ошибку.

Убедитесь, что URL-адрес сценария на самом деле правильный и, возможно, запустите его без ajax, чтобы увидеть страницу ошибки, возвращаемую рельсами, если URL-адрес верен.

Вы также, кажется, не используете response_to, поэтому, вероятно, его не нужно включать.

Смежные вопросы