我需要隐藏 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();
?
答案 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)
$('#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();
}
});