首页 > 解决方案 > 在所有输入表单都填写多个表单之前,下一个按钮无法使用

问题描述

代码JS:

var current_fs, next_fs, previous_fs; //fieldsets
var left, opacity, scale; //fieldset properties which we will animate
var animating; //flag to prevent quick multi-click glitches

$(".next").click(function(){

  if(animating) return false;
  animating = true;

  current_fs = $(this).parent();
  next_fs = $(this).parent().next();

  //activate next step on progressbar using the index of next_fs
  $("#progressbar li").eq($("fieldset").index(next_fs)).addClass("active");

  //show the next fieldset
  next_fs.show(); 

  //hide the current fieldset with style
  current_fs.animate({opacity: 0}, {
    step: function(now, mx) {
    //as the opacity of current_fs reduces to 0 - stored in "now"
    //1. scale current_fs down to 80%
    scale = 1 - (1 - now) * 0.2;
    //2. bring next_fs from the right(50%)
    left = (now * 50)+"%";
    //3. increase opacity of next_fs to 1 as it moves in
    opacity = 1 - now;
    current_fs.css({
      'transform': 'scale('+scale+')',
      'position': 'absolute'
    });
  next_fs.css({'left': left, 'opacity': opacity});
}, 
duration: 800, 
complete: function(){
  current_fs.hide();
  animating = false;
}, 
//this comes from the custom easing plugin
easing: 'easeInOutBack'
});
});

我使用的模板是https://codepen.io/atakan/pen/gqbIz

我想在下一个按钮输入表单被全部填写时,如果不是,在所有输入表单被填写之前下一个按钮无法运行。

请帮我修改https://codepen.io/atakan/pen/gqbIz中的 JS 。谢谢你

标签: javascriptjqueryajax

解决方案


在$(".next").click(function(){旁边添加下面的 JS 脚本将验证表单字段。确保在每个字段集中添加 Id 属性。

Example: <fieldset id="f1">, <fieldset id="f2"> and <fieldset id="f3">

_p_id = $(this).parent().attr('id');    
$('#msform #'+ _p_id + ' input').each(function(){
    if ($.trim($(this).val()).length == 0){
        isFormValid = false;
        return false;
    }else{
        isFormValid = true;
    }
});
if(!isFormValid){
    return false;
} 

推荐阅读