首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建jquery 3步注册

创建jquery 3步注册
EN

Stack Overflow用户
提问于 2009-10-16 17:32:17
回答 2查看 4.5K关注 0票数 0

我正在寻找最好的解决方案,以创建一个3步骤注册过程中的1页。我目前使用的是jquery cycle,在1.3.2版本中使用的技术在告诉它滑动时不起作用,它似乎只在1.3.1中起作用,还有一个大小的问题,幻灯片3比幻灯片1长得多,它生成的高度太高,有死区。

有人知道一个简单的jquery解决方案吗?在这种情况下,UI选项卡可以工作吗?

这就是我目前正在使用的

我想找到一种更短的方法来做一些事情,也许不使用cycle。

代码语言:javascript
复制
$('#signup-content').cycle({fx: 'scrollHorz', timeout: 0, speed: 300, after: onComp, startingSlide:0});
    $("#createAccount").validate({
        meta: "validate",
        errorElement: "em",
                errorClass: "error",
        validClass: "success",
        highlight: function(element, errorClass, validClass) {
            $(element).closest("div.required").removeClass(validClass);
            $(element).closest("div.required").addClass(errorClass);
            $(element).addClass(errorClass);
        },
        unhighlight: function(element, errorClass, validClass) {
            $(element).closest("div.required").removeClass(errorClass);
            $(element).closest("div.required").addClass(validClass);
            $(element).removeClass(errorClass);
        },
        errorPlacement: function(error, element) {
            if (element.attr("name") == "month"
                 || element.attr("name") == "day"
                    || element.attr("name") == "year" )
             error.insertAfter("#year");
            else
            error.addClass("hide");
        },
        debug:true,

        groups: {

            birthday: "month day year"
        },

        rules: {

            firstname:{required:true},
            lastname:{required:true},
            email: {required: true, email: true},
            confirm_email: {required: true, equalTo: "#email"},
            password:{required: true},
            confirm_password:{required: true,equalTo: "#password"},
            zipcode: {required:true, min:5},
            month:{required:true},
            day:{required:true},
            year:{required:true},
            gender:{required:true},
            agree:{required:true}

        },
        messages: {
        month: {
            required: "Month Is Missing"
        },
        day: {
            required: "Day Is Missing"
        },
        year: {
            required: "Year Is Missing"
        }

        },


         submitHandler: function(form) {
            $(form).ajaxSubmit({
             beforeSubmit:  showRequest,
             success: showResponse
            });
   }
})

function showRequest(formData, jqForm, options) {
    // formData is an array; here we use $.param to convert it to a string to display it
    // but the form plugin does this for you automatically when it submits the data
    var queryString = $.param(formData);

    // jqForm is a jQuery object encapsulating the form element.  To access the
    // DOM element for the form do this:
    // var formElement = jqForm[0];


    alert('About to submit: \n\n' + queryString);

    // here we could return false to prevent the form from being submitted;
    // returning anything other than false will allow the form submit to continue
    return true;
}


function showResponse(formData) {

    $('#signup-content').cycle(1);
    $('html, body').animate({scrollTop: '0px'}, 300);
    $('#message-container').addClass("notice").append('<h3>Your Account Has Been Created!</h3><a href="javascript:;" id="close"><img src="/assets/images/close.png" alt="Close" title="Close"/></a>');
    $('#message-container').fadeIn(1200, function(){
    $('#close').click(function(){
        $('#message-container').fadeOut(1200);

    });

    });
    return false;

}

     $('#goback-step2').click(function(){
          $('#signup-content').cycle(1);
         $('html, body').animate({scrollTop: '0px'}, 300);
         return false;
     });
     $('#goto-step3').click(function(){
          $('#signup-content').cycle(2);
          $('html, body').animate({scrollTop: '0px'}, 300);
          return false;
     });

     function onComp(curr, next, opts){
          var index = opts.currSlide;
          if (index == 0){
               $('#step1').removeClass('complete');
               $('#step1').addClass('active').siblings('li').removeClass('active').addClass('inactive');
          }
          else if (index == 1){
               $('#step1').addClass('complete');
               $('#step2').removeClass('complete');
               $('#step2').addClass('active');
               $('#step3').removeClass('active').addClass('inactive');
          }
          else if (index == 2){
               $('#step2').addClass('complete');
               $('#step3').addClass('active').removeClass('inactive');
          }
     }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-16 17:40:24

您可以将show()、/hide()或fadeIn()/fadeOut()与三个单独的DIV容器组合使用,用于不同的表单部分。

然后,您可以在每个部分中绑定一个按钮,以执行下一部分的淡出/淡入:

代码语言:javascript
复制
<div id="section1">
  <!-- form here -->
  <a href="#" id="step2">step2</a>
</div>
<div id="section2" style="display:none">
  <!-- drag drop here -->
  <a href="#" id="step2">step2</a>
</div>
<div id="section3" style="display:none">
  <!-- search here -->
</div>

jquery:

代码语言:javascript
复制
$(function() {
  $('#step2').click(function() {
    $('#section1').fadeOut(function() {
      $('#section2').fadeIn();
    });
    return false;
  });

  $('#step3').click(function() {
    $('#section2').fadeOut(function() {
      $('#section3').fadeIn();
    });
    return false;
  });
});
票数 2
EN

Stack Overflow用户

发布于 2009-10-16 17:43:32

有一个很好的3部分向导演示here,它使用了jQuery验证。验证部分并不是使用该方法所必需的,但是一些客户端验证确实会很有帮助。this的底部还提供了一些其他方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1579370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档