jquery 无法隐藏用于清除输入字段的x按钮

fhity93d  于 2023-02-03  发布在  jQuery
关注(0)|答案(2)|浏览(109)

我用它来清除文本。2这个x框总是出现。3我希望这个x框只在输入有焦点时出现,并在单词后隐藏。4目前它一直出现。

<div class="input-group">
                              <div class="btn-group has-feedback has-clear">
                                  @Html.TextBoxFor(m => m.Amount)
                                <a id="searchclear3"
                                   class=" a 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>
dsekswqp

dsekswqp1#

当文本框没有焦点时,你可以使用一些花哨的CSS来隐藏"searchclear3"元素。诀窍是使用CSS "Adjacent Sibling Selector",+。(参考:MDN

    • 超文本标记语言**
<div class="input-group">
    <div class="btn-group has-feedback has-clear">
        <input id="txtInput" type="text"/>
        <a id="searchclear3"
           class=" a glyphicon glyphicon-remove-circle  form-control-
                                   feedback form-control-clear"
           style="pointer-events:auto; text-decoration:none;
                                   cursor:pointer;"
           onclick="alert('click'); return false;">X
        </a>
    </div>
</div>

请注意,为了方便起见,我硬编码了文本框的标记,在a元素中放置了一个"X",并修改了onclick处理程序,您必须为文本框找到一个合适的选择器,并删除其他内容。

    • 中央支助组**
input#txtInput + a#searchclear3 {
    visibility: hidden;
}
input#txtInput:focus + a#searchclear3 {
    visibility: visible;
}

这些规则规定,具有id "searchclear3"的a元素是id为"txtInput"的input的兄弟元素,当input具有焦点时,a元素应该可见,否则应该隐藏。

drnojrws

drnojrws2#

若要在输入没有焦点时隐藏x框,可以添加CSS类来控制可见性:
下面是一个完整的HTML和JavaScript:
这个问题可能与HTML中的Razor语法有关。

<style>
  .form-control-clear {
    display: none;
  }
</style>

<div class="input-group">
  <div class="btn-group has-feedback has-clear">
    @Html.TextBoxFor(m => m.Amount, new { @id = "inputBox" })
    <a id="searchclear3" class="glyphicon glyphicon-remove-circle form-control-feedback form-control-clear" style="pointer-events:auto; text-decoration:none; cursor:pointer;" onclick="document.querySelector('#inputBox').value='';">
    </a>
  </div>
</div>

<script>
  var input = document.querySelector("#inputBox");
  var clearBtn = document.querySelector("#searchclear3");

  input.addEventListener("focus", function() {
    clearBtn.style.display = "block";
  });

  input.addEventListener("blur", function() {
    clearBtn.style.display = "none";
  });
</script>

相关问题