显示隐藏问题

下面的代码大神们应该容易看清楚,我现在就是有一个冲突
下面的change输入如果小于6位数的时候我的生成按钮也会被隐藏
要是客户故意老是输入不超过6位数的话,我那个生成按钮就会老是被隐藏
那这样客户想点击生成按钮也点不了
有什么办法就是当点击生成按钮就把下面的change事件禁用掉
但当在change里输入值(不超过6位数)的时候在弹出提示


/**********js***********/
//生成按钮
$(".btnrom").click(function(){
    //随机生成代码添加到输入框里             
});
//输入框
$("input[name=password]").change(function(){
    if($(this).val().length<6){//输入框值小于6位
        $(".btnrom").hide();//隐藏生成按钮
        $(".ptext2").show().html("密码不能小于6位数");
        return flase;
    }
});

/********html********/
<input type="text" name="password" placeholder="点击此处输入">
<input type="button" class="btnrom" name="button" value="随机生成">


<p style="display:none" class="ptext2">密码少于六个</p>


阅读 2.5k
4 个回答

你可以监听 [密码输入框] 的 blur 也就是焦点离开事件,
当焦点离开是再去判断[密码输入框]输入文本的长度,如果长度小于6,[随机生成] 按钮 隐藏并提示系想你
当再次获取焦点时(focus事件),重新显示 [随机生成]

区别只在于是否点击过生成按钮么? 那加个变量来控制一下

/**********js***********/
//设置一个变量来检测是否点击过
var isClicked = false;
//生成按钮
$(".btnrom").click(function(){
    //随机生成代码添加到输入框里
    isClicked = true;             
});
//输入框
$("input[name=password]").change(function(){
    if($(this).val().length<6){//输入框值小于6位
        if(!isClicked) {
            $(".btnrom").hide();//隐藏生成按钮
        }
        $(".ptext2").show().html("密码不能小于6位数");
        return flase;
    }
});


/********html********/
<input type="text" name="password" placeholder="点击此处输入">
<input type="button" class="btnrom" name="button" value="随机生成">




<p style="display:none" class="ptext2">密码少于六个</p>



个人觉得可以用jQuery unbind... 搜搜吧

新手上路,请多包涵

只用在if后面加个else就可以了吧

$(".btnrom").click(function(){
    //随机生成代码添加到输入框里             
});
//输入框
$("input[name=password]").change(function(){
    if($(this).val().length<6){//输入框值小于6位
        $(".btnrom").hide();//隐藏生成按钮
        $(".ptext2").show().html("密码不能小于6位数");
        return flase;
    }
    else{
         $(".btnrom").show();//隐藏生成按钮
        $(".ptext2").hide();
        return true;
    }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏