2013-06-12 2 views
0

AJAX를 통해 양식을 제출하고 싶습니다. 양식을 제출하면 아약스를 보내고 id가있는 div에 페이드 인해야합니다 stepTwo, 현재 div를 페이드 아웃합니다. jQuery 1.8.0을 사용하고 있으며 제출할 때 콘솔에이 오류가 있습니다. 내 컨트롤러 여기 데프 @program = Program.new을 만들 /programs.jsonRails AJAX 양식 제출

#의 POST/프로그램 #의 POST (PARAMS

<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> 

그리고 다음은

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의 [: 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 

그리고 이것은 내 자바 스크립트 파일입니다 NS_ERROR_FAILURE이 URL이 잘못 또는 레일 컨트롤러에 오류가 타격을 나타 내기 위해 보인다

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

.

스크립트가 실제로 호출하는 URL이 올바른지 확인하고 URL이 올바른 경우 레일스가 반환 한 오류 페이지를 보려면 아약스없이 스크립트를 실행하십시오.

또한 respond_to를 사용하지 않는 것으로 보이므로 포함 할 필요가 없을 것입니다.