不使用FormToWizard Jquery插件保存数据
我试图将这个插件设计成我的rails 3.2应用程序,但遇到了一些问题 当我单击提交时,表单没有保存到我的模型,只是重定向到第一步 这是我的查看代码:不使用FormToWizard Jquery插件保存数据,jquery,ruby-on-rails,ruby-on-rails-3,asset-pipeline,Jquery,Ruby On Rails,Ruby On Rails 3,Asset Pipeline,我试图将这个插件设计成我的rails 3.2应用程序,但遇到了一些问题 当我单击提交时,表单没有保存到我的模型,只是重定向到第一步 这是我的查看代码: <h1>Tell us a little about yourself.</h1> <form id="SignupForm" action=""> <fieldset> <legend>Personal Information</legend
<h1>Tell us a little about yourself.</h1>
<form id="SignupForm" action="">
<fieldset>
<legend>Personal Information</legend>
<%= simple_form_for @user do |f| %>
<%= f.input :city %>
<%= f.input :address %>
<%= f.input :zipcode %>
<%= f.input :date_of_birth, :as => :date, :start_year => Date.today.year - 90,
:end_year => Date.today.year - 12,
:order => [:month, :day, :year ] %>
<%= f.input :gender, :collection => ['male','female'] %>
</fieldset>
<fieldset>
<legend>Interests & Holidays</legend>
<h2>Select your top 3 interests..</h2>
<label class="checkbox">
<%= f.association :interests, :as => :check_boxes, :label => false %>
</label>
<br></br>
<h2>What holidays do you celebrate?</h2>
<label class="checkbox">
<%= f.association :holidays, :as => :check_boxes, :label => false %>
</label>
<br></br>
</fieldset>
<fieldset>
<legend>Friends Birthdays</legend>
<h2>Add up to 10 friends birthdays that you would like to remember..</h2>
<br></br>
<%= f.simple_fields_for :friends do |friend_f| %>
<div id="input1" style="margin-bottom:4px;" class="clonedInput">
<%= friend_f.input :name %>
<%= friend_f.input :dob, :label => :Birthday, :as => :date, :start_year => Date.today.year - 90,
:end_year => Date.today.year - 12,
:order => [:month, :day, :year ] %>
<%= f.input :gender, :collection => ['male','female'] %>
<input type="button" id="btnAdd" value="add another name" />
<input type="button" id="btnDel" value="remove name" />
</div>
<% end %>
<%= f.button :submit %>
<%end%>
</fieldset>
</div>
给我们介绍一下你自己。
个人信息
:date,:start_year=>date.today.year-90,
:end_year=>Date.today.year-12,
:订单=>[:月,:日,:年]]>
[‘男性’、‘女性’]%>
兴趣与假期
选择你的三大兴趣。。
:复选框,:label=>false%>
你庆祝什么节日?
:复选框,:label=>false%>
朋友的生日
最多加上10个你想记住的朋友生日。。
:生日,:as=>:date,:start\u year=>date.today.year-90,
:end_year=>Date.today.year-12,
:订单=>[:月,:日,:年]]>
[‘男性’、‘女性’]%>
以下是js:
(function($) {
$.fn.formToWizard = function(options) {
options = $.extend({
submitButton: ""
}, options);
var element = this;
var steps = $(element).find("fieldset");
var count = steps.size();
var submmitButtonName = "#" + options.submitButton;
$(submmitButtonName).hide();
// 2
$(element).before("<ul id='steps'></ul>");
steps.each(function(i) {
$(this).wrap("<div id='step" + i + "'></div>");
$(this).append("<p id='step" + i + "commands'></p>");
// 2
var name = $(this).find("legend").html();
$("#steps").append("<li id='stepDesc" + i + "'>Step " + (i + 1) + "<span>" + name + "</span></li>");
if (i == 0) {
createNextButton(i);
selectStep(i);
}
else if (i == count - 1) {
$("#step" + i).hide();
createPrevButton(i);
}
else {
$("#step" + i).hide();
createPrevButton(i);
createNextButton(i);
}
});
function createPrevButton(i) {
var stepName = "step" + i;
$("#" + stepName + "commands").append("<a href='#' id='" + stepName + "Prev' class='prev'>< Back</a>");
$("#" + stepName + "Prev").bind("click", function(e) {
$("#" + stepName).hide();
$("#step" + (i - 1)).show();
$(submmitButtonName).hide();
selectStep(i - 1);
});
}
function createNextButton(i) {
var stepName = "step" + i;
$("#" + stepName + "commands").append("<a href='#' id='" + stepName + "Next' class='next'>Next ></a>");
$("#" + stepName + "Next").bind("click", function(e) {
$("#" + stepName).hide();
$("#step" + (i + 1)).show();
if (i + 2 == count)
$(submmitButtonName).show();
selectStep(i + 1);
});
}
function selectStep(i) {
$("#steps li").removeClass("current");
$("#stepDesc" + i).addClass("current");
}
}
})(jQuery);
(函数($){
$.fn.formToWizard=函数(选项){
选项=$.extend({
提交按钮:“
},选项);
var元素=这个;
var步骤=$(元素).find(“字段集”);
var count=steps.size();
var submmitButtonName=“#”+options.submitButton;
$(子mmitButtonName).hide();
// 2
$(元素)。在(“
”)之前;
步骤。每个步骤(功能(i){
$(this.wrap(“”);
$(this.append(“Step”+(i+1)+“+name+””;
如果(i==0){
createNextButton(i);
选择步骤(i);
}
else if(i==计数-1){
$(“#步骤”+i).hide();
按钮(i);
}
否则{
$(“#步骤”+i).hide();
按钮(i);
createNextButton(i);
}
});
功能按钮(i){
var stepName=“step”+i;
$(“#”+stepName+“命令”).append(“”);
$(“#”+步骤名+“下一步”).bind(“单击”,函数(e){
$(“#”+stepName).hide();
$(#步骤“+(i+1)).show();
如果(i+2==计数)
$(子mmitButtonName).show();
选择步骤(i+1);
});
}
功能选择步骤(i){
$(“#步骤li”).removeClass(“当前”);
$(“#stepDesc”+i).addClass(“当前”);
}
}
})(jQuery);
以下是我解决问题的方法。我首先编辑了formToWizard.js文件中的选项,如下所示:
.options=$.extend({submitButton:“submit”}
然后在我看来,我更改了表单元素,如下所示:
<script type="javascripts" src="formToWizard.js"></script>
<form id="SignupForm" action= "users#create" method="post">
<%= simple_form_for @user do |f| %>
<fieldset><div id='step'>
#multiple input fields
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div></fieldset>
</form>
#多输入字段
我用它来注册用户,因此我确保将表单元素指向我的用户#创建路径,然后我使用方法“post”。如果您不确定要在控制器中获得创建操作,请运行rake路由,并使用该路由填充“操作”和“方法”表单的字段,您应该准备好了!与此相关的内容?…options=$.extend({submitButton:“},options);当我删除表单标记时,整个表单呈现为一页,保存按钮工作正常。。