实现输入框输入含http的URL时隐藏按钮,否则显示的功能问询
解决URL输入检测按钮显示/隐藏的问题
嘿,你的思路已经找对方向啦!不过目前的代码只处理了隐藏按钮的场景——当用户删除输入里的http、或者输入不含http的内容时,按钮不会自动重新显示。我来帮你补全逻辑:
核心问题补充
你现有代码缺少了「当URL不包含http时,恢复显示按钮」的分支,所以需要补上else逻辑来完善闭环:
修正后的基础版本代码
$('#pasteUrl').on('input', function () { var str = $(this).val(); // 用$(this)替代重复选择器,代码更高效 if (str.indexOf("http") !== -1) { $('#button').hide(); } else { $('#button').show(); // 新增:不包含http时显示按钮 } });
优化建议:更鲁棒的大小写兼容检测
考虑到用户可能输入大写的HTTP,可以把输入值转成小写后再判断,避免漏判这种情况:
$('#pasteUrl').on('input', function () { var str = $(this).val().toLowerCase(); if (str.indexOf("http") !== -1) { $('#button').hide(); } else { $('#button').show(); } });
更简洁的写法:用toggle()方法简化代码
jQuery的toggle()方法可以直接根据布尔值控制元素显示/隐藏,一行代码就能完成逻辑,看起来更清爽:
$('#pasteUrl').on('input', function () { const hasHttp = $(this).val().toLowerCase().includes('http'); $('#button').toggle(!hasHttp); // 当hasHttp为true时隐藏,false时显示 });
这样不管用户是粘贴、输入还是删除内容,按钮都会根据输入的URL是否包含http(不区分大小写)自动切换显示状态啦~
内容的提问来源于stack exchange,提问作者user4095424
相关产品推荐
相关产品推荐

