jquery的smartWizard插件常用在一些向导式的,按步骤的功能中,是的用户按照我们设定的步骤进行操作,这样一方面有较好的用户体验,可以将庞大的表格数据分解成多个步骤,是的每个步骤的数据量减少;另一方面流程比较清晰,先做那个下一步做什么都是可控可设定的。
下面说一下如何使用,首先html中引入jquery的smartWizard插件对应的jquery.smartWizard-2.0.js
html中代码如下:
- <!--html中-->
- <divid="sfxxdj_div"class="swMain">
- <ulid="sfxxdj_wizard_ul">
- <li><ahref="#sfxxdj_step_1"><labelclass="stepNumber">1</label>
- <spanclass="stepDesc">选择身份类型</span></a>
- </li>
- <li><ahref="#sfxxdj_step_2"><labelclass="stepNumber">1</label>
- <spanclass="stepDesc">基本信息表</span></a>
- </li>
- <li><ahref="#sfxxdj_step_3"><labelclass="stepNumber">2</label>
- <spanclass="stepDesc">学历情况表</span></a>
- </li>
- <li><ahref="#sfxxdj_step_4"><labelclass="stepNumber">3</label>
- <spanclass="stepDesc">工作情况表</span></a>
- </li>
- </ul>
- <divid="sfxxdj_step_1"style="overflow:auto;">
- <tablecellpadding="0"cellspacing="0"border="0"class="wi-frm-tbl"style="width:100%;height:500px;line-height:50px">
- <thvalign="top"><h1>请选择身份类型:</h1></br>
- <h1><inputtype="radio"name="jjdj_lx"id="jjdj_ctgs"value="1">
- 公司</h1></br>
- <h1><inputtype="radio"name="jjdj_lx"id="jjdj_glgs"value="3">
- 个人</h1></th>
- </table>
- </div>
- <divid="sfxxdj_step_2"style="overflow:auto;">
- <!--内容可直接在这加入,如果内容过大可直接载入html-->
- </div>
- <divid="sfxxdj_step_3"style="overflow:auto;">
- </div>
- <divid="sfxxdj_step_4"style="overflow:auto;">
- </div>
- </div>
- <!--EndSmartWizardContent-->
js代码如下:
- varsfxxdj={
- //当点下一步时回调该函数,一般用于当前步骤的校验
- nextStepCallback:function(stepObj){
- varstep_num=stepObj.attr('rel');
- switch(step_num){
- case'1':
- if($('input[name=jjdj_lx]:checked').val()>0){
- sfxxdj.jjlx=$('input[name=jjdj_lx]:checked').val();
- if(sfxxdj.jjlx=='1'){
- $('#sfxxdj_wizard_ul[rel=5]').hide();
- $('#sfxxdj_step_5').hide();
- }else{
- $('#sfxxdj_wizard_ul[rel=2]').hide();
- }
- returntrue;//转下一步
- }
- else{
- alert("请选择基金登记类型!");
- returnfalse;
- }
- case'2':
- if(sfxxdj.jjlx=='1'&&$("#sfxxdj_jbqkb_jjmc").val()==''){
- alert("请输入基金名称!");
- returnfalse;
- }else{
- sfxxdj.jjmc=$("#sfxxdj_jbqkb_jjmc").val();
- }
- returntrue;
- case'3':
- returntrue;
- case'4':
- returntrue;
- case'5':
- returntrue;
- case'6':
- default:
- break;
- }
- returntrue;
- },
- //当现实该步骤时回调该函数,一般用于当前步骤的初始化
- showStepCallback:function(stepObj){
- varstep_num=stepObj.attr('rel');
- switch(step_num){
- case'2':
- break;
- case'3':
- break;
- case'4':
- $("#jjxmmc").text(sfxxdj.jjmc);
- if(sfxxdj.jjlx=="1"){
- $('#div.actionBara.buttonFinish').removeClass("buttonDisabled");
- $('#div.actionBara.buttonNext').addClass("buttonDisabled");
- }
- break;
- case'5':
- if(sfxxdj.b4=="0"){
- settWtjj();
- }
- break;
- case'6':
- break;
- default:
- break;
- }
- }
- }
- $(function(){
- //对象初始化,以及设定相关回调时间
- $('#sfxxdj_div').smartWizard({
- keyNavigation:false,
- onFinish:sfxxdj.onSubmit,
- onNextStep:sfxxdj.nextStepCallback,
- onShowStep:sfxxdj.showStepCallback
- });
- $(".actionBara").button();
- //文件形式初始化各步骤的内容
- $('#sfxxdj_step_2').html("").load('jbqkb.html');
- $('#sfxxdj_step_3').html("").load('xlqkb.html');
- $('#sfxxdj_step_4').html("").load('gzqkb.html');
- }
网上的参考资料不是很多,我也只是稍微应用了一下,最后说一下我了解的技巧,默认情况下上一步和下一步以及提交按钮需要人工来控制,哪些需要对按钮进行添加移除样式,如下:
- $('.actionBara.buttonFinish').removeClass("buttonDisabled");//提交按钮可用
- $('.actionBara.buttonFinish').addClass("buttonDisabled");//提交按钮变灰
- $('.actionBara.buttonNext').removeClass("buttonDisabled");//下一步按钮可用
- $('.actionBara.buttonNext').addClass("buttonDisabled");//下一步按钮变灰
- $('.actionBara.buttonPrevious').removeClass("buttonDisabled");//上一步按钮可用
- $('.actionBara.buttonPrevious').addClass("buttonDisabled");//上一步按钮变灰
如何手动激活一个步骤的,或者如何跳过步骤呢?操作如下:
比如直接激活第四步骤可点击:- $('#sfxxdj_wizard_ul[rel=4]').attr("isDone",1);
- $('#sfxxdj_wizard_ul[rel=4]').addClass("done").removeClass("disabled");
这样不管你进行的是否做到第四步,都可以点击查看第四步的内容。
比如某些时候我们需要从第一步调转到第三步:
- $('#sfxxdj_div').smartWizard('skipTo',3);
下面说一下如何使用,首先html中引入jquery的smartWizard插件对应的jquery.smartWizard-2.0.js
html中代码如下:
- <!--html中-->
- <divid="sfxxdj_div"class="swMain">
- <ulid="sfxxdj_wizard_ul">
- <li><ahref="#sfxxdj_step_1"><labelclass="stepNumber">1</label>
- <spanclass="stepDesc">选择身份类型</span></a>
- </li>
- <li><ahref="#sfxxdj_step_2"><labelclass="stepNumber">1</label>
- <spanclass="stepDesc">基本信息表</span></a>
- </li>
- <li><ahref="#sfxxdj_step_3"><labelclass="stepNumber">2</label>
- <spanclass="stepDesc">学历情况表</span></a>
- </li>
- <li><ahref="#sfxxdj_step_4"><labelclass="stepNumber">3</label>
- <spanclass="stepDesc">工作情况表</span></a>
- </li>
- </ul>
- <divid="sfxxdj_step_1"style="overflow:auto;">
- <tablecellpadding="0"cellspacing="0"border="0"class="wi-frm-tbl"style="width:100%;height:500px;line-height:50px">
- <thvalign="top"><h1>请选择身份类型:</h1></br>
- <h1><inputtype="radio"name="jjdj_lx"id="jjdj_ctgs"value="1">
- 公司</h1></br>
- <h1><inputtype="radio"name="jjdj_lx"id="jjdj_glgs"value="3">
- 个人</h1></th>
- </table>
- </div>
- <divid="sfxxdj_step_2"style="overflow:auto;">
- <!--内容可直接在这加入,如果内容过大可直接载入html-->
- </div>
- <divid="sfxxdj_step_3"style="overflow:auto;">
- </div>
- <divid="sfxxdj_step_4"style="overflow:auto;">
- </div>
- </div>
- <!--EndSmartWizardContent-->
js代码如下:
- varsfxxdj={
- //当点下一步时回调该函数,一般用于当前步骤的校验
- nextStepCallback:function(stepObj){
- varstep_num=stepObj.attr('rel');
- switch(step_num){
- case'1':
- if($('input[name=jjdj_lx]:checked').val()>0){
- sfxxdj.jjlx=$('input[name=jjdj_lx]:checked').val();
- if(sfxxdj.jjlx=='1'){
- $('#sfxxdj_wizard_ul[rel=5]').hide();
- $('#sfxxdj_step_5').hide();
- }else{
- $('#sfxxdj_wizard_ul[rel=2]').hide();
- }
- returntrue;//转下一步
- }
- else{
- alert("请选择基金登记类型!");
- returnfalse;
- }
- case'2':
- if(sfxxdj.jjlx=='1'&&$("#sfxxdj_jbqkb_jjmc").val()==''){
- alert("请输入基金名称!");
- returnfalse;
- }else{
- sfxxdj.jjmc=$("#sfxxdj_jbqkb_jjmc").val();
- }
- returntrue;
- case'3':
- returntrue;
- case'4':
- returntrue;
- case'5':
- returntrue;
- case'6':
- default:
- break;
- }
- returntrue;
- },
- //当现实该步骤时回调该函数,一般用于当前步骤的初始化
- showStepCallback:function(stepObj){
- varstep_num=stepObj.attr('rel');
- switch(step_num){
- case'2':
- break;
- case'3':
- break;
- case'4':
- $("#jjxmmc").text(sfxxdj.jjmc);
- if(sfxxdj.jjlx=="1"){
- $('#div.actionBara.buttonFinish').removeClass("buttonDisabled");
- $('#div.actionBara.buttonNext').addClass("buttonDisabled");
- }
- break;
- case'5':
- if(sfxxdj.b4=="0"){
- settWtjj();
- }
- break;
- case'6':
- break;
- default:
- break;
- }
- }
- }
- $(function(){
- //对象初始化,以及设定相关回调时间
- $('#sfxxdj_div').smartWizard({
- keyNavigation:false,
- onFinish:sfxxdj.onSubmit,
- onNextStep:sfxxdj.nextStepCallback,
- onShowStep:sfxxdj.showStepCallback
- });
- $(".actionBara").button();
- //文件形式初始化各步骤的内容
- $('#sfxxdj_step_2').html("").load('jbqkb.html');
- $('#sfxxdj_step_3').html("").load('xlqkb.html');
- $('#sfxxdj_step_4').html("").load('gzqkb.html');
- }
网上的参考资料不是很多,我也只是稍微应用了一下,最后说一下我了解的技巧,默认情况下上一步和下一步以及提交按钮需要人工来控制,哪些需要对按钮进行添加移除样式,如下:
- $('.actionBara.buttonFinish').removeClass("buttonDisabled");//提交按钮可用
- $('.actionBara.buttonFinish').addClass("buttonDisabled");//提交按钮变灰
- $('.actionBara.buttonNext').removeClass("buttonDisabled");//下一步按钮可用
- $('.actionBara.buttonNext').addClass("buttonDisabled");//下一步按钮变灰
- $('.actionBara.buttonPrevious').removeClass("buttonDisabled");//上一步按钮可用
- $('.actionBara.buttonPrevious').addClass("buttonDisabled");//上一步按钮变灰
如何手动激活一个步骤的,或者如何跳过步骤呢?操作如下:
比如直接激活第四步骤可点击:- $('#sfxxdj_wizard_ul[rel=4]').attr("isDone",1);
- $('#sfxxdj_wizard_ul[rel=4]').addClass("done").removeClass("disabled");
这样不管你进行的是否做到第四步,都可以点击查看第四步的内容。
比如某些时候我们需要从第一步调转到第三步:
- $('#sfxxdj_div').smartWizard('skipTo',3);