无法隐藏输入框清除X按钮,需设置为仅聚焦时显示、失焦后隐藏
解决输入框清除按钮仅在焦点时显示的问题
要实现清除按钮仅在输入框获得焦点时显示、失去焦点隐藏的效果,你可以通过CSS伪类结合兄弟选择器来实现,步骤如下:
- 添加CSS样式
默认隐藏清除按钮,仅当输入框获得焦点时显示它:
/* 默认隐藏清除按钮 */ .form-control-clear { display: none; } /* 输入框获得焦点时,显示相邻的清除按钮 */ input:focus + .form-control-clear { display: block; }
- 整理HTML代码
修正原代码中class属性的多余空格,确保结构正确:
<div class="input-group"> <div class="btn-group has-feedback has-clear"> @Html.TextBoxFor(m => m.Amount) <a id="searchclear3" class="glyphicon glyphicon-remove-circle form-control-feedback form-control-clear" style="pointer-events:auto; text-decoration:none; cursor:pointer;" onclick="$(this).prev('input').val(''); return false;"> </a> </div> </div>
可选增强(按需添加)
如果希望输入框有内容时,即使失去焦点也显示清除按钮,可以结合JavaScript监听输入事件:
$(function() { const input = $('input[name="Amount"]'); const clearBtn = $('#searchclear3'); // 监听输入事件,根据内容显示/隐藏按钮 input.on('input', function() { if ($(this).val().trim()) { clearBtn.show(); } else { // 无内容时,只有焦点状态才显示 if (!$(this).is(':focus')) { clearBtn.hide(); } } }); // 失去焦点时,无内容则隐藏按钮 input.on('blur', function() { if (!$(this).val().trim()) { clearBtn.hide(); } }); });
内容的提问来源于stack exchange,提问作者Jashvita
相关产品推荐
相关产品推荐

