如何在最后的其他脚本中执行一个函数?

时间:2013-01-07 03:51:22

标签: jquery

我需要隐藏 div id =" FormStep" 什么时候检查最后一次输入。

在我的页面上,我使用此HTML代码:

<div id="FormStep">
  <input type="text" name="test1" id="test1" class="validate" />
  <div id="Checktest1Input"></div>
  <input type="text" name="test2" id="test2" class="validate" />
  <div id="Checktest2Input"></div>
  <input type="text" name="test3" id="test3" class="validate" />
  <div id="Checktest3Input"></div>
<input type="button" id="Step" value="Send"/>
</div>

要在页面上进行验证,我使用此JS代码:

$('#Step').on('click',function(){
    $('.validate').each(function(){

        if ($(this).val().length == 0){
        $('#Check'+this.id+'Input').html('false');
          return false;
        } else {
        $('#Check'+this.id+'Input').html('true');
        }

      });
});

请告诉我如何在检查上次输入后添加此代码$('#Step').hide();执行的代码$('#Step').hide();

4 个答案:

答案 0 :(得分:2)

使用以下代码可以显着简化您的代码:

$('#Step').on('click',function(){
    var valid = true;
    $('.validate').each(function(){
        valid = valid && $(this).val().length != 0;
        $(this).next().html("" + ($(this).val().length != 0)); 
    });
    if(valid){
        $(this).hide();
    }
    return valid;
});

答案 1 :(得分:1)

Working fiddle

$('#Step').on('click',function(){
    var hideStep = true;
    $('.validate').each(function(){

        if ($(this).val().length == 0){
        $('#Check'+this.id+'Input').html('false');
          hideStep = false;
          return false;
        } else {
        $('#Check'+this.id+'Input').html('true');
        }
      });
    if (hideStep)
      $('#Step').hide();
});

答案 2 :(得分:0)

使用变量并设置$('#Step')。hide();在每个功能之后:

$('#Step').on('click',function(){
    var error = false;
    $('.validate').each(function(){
        if ($(this).val().length == 0){
          $('#Check'+this.id+'Input').html('false');
          error = false;
        } else {
          $('#Check'+this.id+'Input').html('true');
          error = true;
        }
      });
    if(!error) { 
      $('#Step').hide();
    }
});

.each是同步的,这意味着.each函数下面的所有内容都会在它运行后加载。

答案 3 :(得分:0)

我认为你要找的是隐藏动作是否存在无效输入

$('#Step').on('click',function(){
    var valid = true;
    $('.validate').each(function(){
        if ($(this).val().length == 0){
            $('#Check'+this.id+'Input').html('false');
          valid = false;
        } else {
            $('#Check'+this.id+'Input').html('true');
        }
      });
    if(!valid){
        $('#Step').hide();
    }
});