0

我想通过 AJAX 提交表单。当我提交表单时,它应该发送一个 ajax 并淡入 id 为 stepTwo 的 div,并淡出当前 div。我使用的是 jQuery 1.8.0,当我提交时,我的控制台中出现此错误。

 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 /programs # POST /programs.json def create @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);
            }
        });


    });
}
4

1 回答 1

0

NS_ERROR_FAILURE 似乎表明 URL 错误或 rails 控制器遇到错误。

检查脚本调用的 URL 是否正确,如果 url 正确,则可能在没有 ajax 的情况下运行它以查看 rails 返回的错误页面。

您似乎也没有使用 respond_to 所以可能不需要包含它。

于 2013-06-12T16:56:20.703 回答