2013-06-12 168 views
0

我想通過AJAX提交表單。當我提交表單時,它應該發送一個ajax並使用id stepTwo淡入到div中,並淡出當前的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實際上是否正確,如果url正確,可以運行它而不使用ajax來查看由rails返回的錯誤頁面。

您也似乎沒有使用respond_to,因此可能不需要包含它。