Как очистить поле поиска с помощью " x " в bootstrap 3?
возникли некоторые проблемы с bootstrap, так что некоторая помощь будет удивительным. Спасибо
что бы я хотел: (верхняя часть)

мой текущий код:
<div class="form-group">
<input type="text"
class="form-control"
id="findJobTitle"
name="findJobTitle"
placeholder="Job Title, Keywords"
onkeyup="showResult()">
</div>
Текущий Скриншот:

9 ответов:
чтобы сделать что-то вроде этого
С Bootstrap 3 и Jquery используйте следующий HTML код:
<div class="btn-group"> <input id="searchinput" type="search" class="form-control"> <span id="searchclear" class="glyphicon glyphicon-remove-circle"></span> </div>и некоторые CSS:
#searchinput { width: 200px; } #searchclear { position: absolute; right: 5px; top: 0; bottom: 0; height: 14px; margin: auto; font-size: 14px; cursor: pointer; color: #ccc; }и Javascript:
$("#searchclear").click(function(){ $("#searchinput").val(''); });конечно, вам нужно написать больше Javascript для любой необходимой вам функциональности, например, чтобы скрыть "x", если вход пуст, сделать запросы Ajax и так далее. Смотрите http://www.bootply.com/121508
супер-простой HTML 5 Решение:
<input type="search" placeholder="Search..." />источник: HTML 5 учебник-тип ввода: Поиск
это работает по крайней мере в Chrome 8, Edge 14, IE 10 и Safari 5 и не требует Bootstrap или любой другой библиотеки. (К сожалению, кажется, Firefox пока не поддерживает это.) После ввода в поле поиска появится 'x', который можно щелкнуть, чтобы очистить текст. Это все равно будет работать как обычное редактирование коробка в других браузерах (без кнопки "x"). В идеале, я думаю, что другие решения, опубликованные здесь, должны быть реализованы как polyfill (автоматическое добавление функции браузера, когда браузер пользователя не поддерживает эту функцию), и со временем вы сможете удалить polyfills, поскольку браузеры реализуют соответствующие функции.
Кстати, другие типы ввода HTML 5 (например, "дата", "номер", "электронная почта" и т. д.) также будет изящно деградировать до простого поля редактирования. Некоторые браузеры могут дать вам необычный выбор даты, управление спиннером с кнопками вверх / вниз или (на мобильных телефонах) специальная клавиатура, которая включает в себя знак " @ "и кнопку". com", но, насколько мне известно, все браузеры будут по крайней мере отображение обычного текстового поля для любого нераспознанного типа ввода.
Bootstrap & HTML 5 Solution
Bootstrap сбрасывает много CSS и ломает кнопку отмены поиска HTML 5. После начальной загрузки CSS был загружен, вы можете восстановить кнопка отмены поиска с помощью CSS используется в следующем примере:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <style> input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: searchfield-cancel-button; } </style> <div class="form-inline"> <input type="search" placeholder="Search..." class="form-control" /> </div>источник: HTML 5 Search Input не работает с Bootstrap
Я только проверил это решение в Chrome.
Я пытался избежать слишком много пользовательских CSS и после прочтения некоторых других примеров я объединил идеи там и получил это решение:
<div class="form-group has-feedback has-clear"> <input type="text" class="form-control" ng-model="ctrl.searchService.searchTerm" ng-change="ctrl.search()" placeholder="Suche"/> <a class="glyphicon glyphicon-remove-sign form-control-feedback form-control-clear" ng-click="ctrl.clearSearch()" style="pointer-events: auto; text-decoration: none;cursor: pointer;"></a> </div>поскольку я не использую JavaScript bootstrap, просто CSS вместе с Angular, мне не нужны классы has-clear и form-control-clear, и я реализовал функцию clear в своем контроллере AngularJS. С помощью JavaScript bootstrap это может быть возможно без собственного JavaScript.
спасибо неподключенном решение было очень чисто. Я использовал горизонтальные формы начальной загрузки и сделал несколько модификаций, чтобы разрешить один обработчик и форму css.
html: -обновлено чтобы использовать Bootstrap имеет-обратная связь и форма-контроль-обратная связь
<div class="container"> <form class="form-horizontal"> <div class="form-group has-feedback"> <label for="txt1" class="col-sm-2 control-label">Label 1</label> <div class="col-sm-10"> <input id="txt1" type="text" class="form-control hasclear" placeholder="Textbox 1"> <span class="clearer glyphicon glyphicon-remove-circle form-control-feedback"></span> </div> </div> <div class="form-group has-feedback"> <label for="txt2" class="col-sm-2 control-label">Label 2</label> <div class="col-sm-10"> <input id="txt2" type="text" class="form-control hasclear" placeholder="Textbox 2"> <span class="clearer glyphicon glyphicon-remove-circle form-control-feedback"></span> </div> </div> <div class="form-group has-feedback"> <label for="txt3" class="col-sm-2 control-label">Label 3</label> <div class="col-sm-10"> <input id="txt3" type="text" class="form-control hasclear" placeholder="Textbox 3"> <span class="clearer glyphicon glyphicon-remove-circle form-control-feedback"></span> </div> </div> </form> </div>javascript:
$(".hasclear").keyup(function () { var t = $(this); t.next('span').toggle(Boolean(t.val())); }); $(".clearer").hide($(this).prev('input').val()); $(".clearer").click(function () { $(this).prev('input').val('').focus(); $(this).hide(); });пример: http://www.bootply.com/130682
AngularJS / UI-Bootstrap ответ
- используйте Bootstrap есть-обратная связь класс для отображения значка внутри поля ввода.
- убедитесь, что значок
style="cursor: pointer; pointer-events: all;"- использовать
ng-clickочистить текст.JavaScript (app.js)
var app = angular.module('plunker', ['ui.bootstrap']); app.controller('MainCtrl', function($scope) { $scope.params = {}; $scope.clearText = function() { $scope.params.text = null; } });HTML-код (индекс.фрагмент HTML-кода)
<div class="form-group has-feedback"> <label>text box</label> <input type="text" ng-model="params.text" class="form-control" placeholder="type something here..."> <span ng-if="params.text" ng-click="clearText()" class="glyphicon glyphicon-remove form-control-feedback" style="cursor: pointer; pointer-events: all;" uib-tooltip="clear"> </span> </div>вот планкер:http://plnkr.co/edit/av9VFw?p=preview
сделать это с помощью встроенных стилей и скрипт:
<div class="btn-group has-feedback has-clear"> <input id="searchinput" type="search" class="form-control" style="width:200px;"> <a id="searchclear" 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>
вот мое рабочее решение с поиском и четким значком для Angularjs\Bootstrap с CSS.
<div class="form-group has-feedback has-clear"> <input type="search" class="form-control removeXicon" ng-model="filter" style="max-width:100%" placeholder="Search..." /> <div ng-switch on="!!filter"> <div ng-switch-when="false"> <span class="glyphicon glyphicon-search form-control-feedback"></span> </div> <div ng-switch-when="true"> <span class="glyphicon glyphicon-remove-sign form-control-feedback" ng-click="$parent.filter = ''" style="pointer-events: auto; text-decoration: none;cursor: pointer;"></span> </div> </div> </div> ------ CSS /* hide the built-in IE10+ clear field icon */ .removeXicon::-ms-clear { display: none; } /* hide the built-in chrome clear field icon */ .removeXicon::-webkit-search-decoration, .removeXicon::-webkit-search-cancel-button, .removeXicon::-webkit-search-results-button, .removeXicon::-webkit-search-results-decoration { display: none; }
не привязывайтесь к идентификатору элемента, просто используйте "предыдущий" элемент ввода для очистки.
CSS:
.clear-input > span { position: absolute; right: 24px; top: 10px; height: 14px; margin: auto; font-size: 14px; cursor: pointer; color: #AAA; }Javascript:
function $(document).ready(function() { $(".clear-input>span").click(function(){ // Clear the input field before this clear button // and give it focus. $(this).prev().val('').focus(); }); });HTML разметка, используйте столько, сколько вам нравится:
<div class="clear-input"> Pizza: <input type="text" class="form-control"> <span class="glyphicon glyphicon-remove-circle"></span> </div> <div class="clear-input"> Pasta: <input type="text" class="form-control"> <span class="glyphicon glyphicon-remove-circle"></span> </div>
поместите изображение (значок отмены) с абсолютной позицией, отрегулируйте верхние и левые свойства и вызовите метод onclick событие, которое очищает поле ввода.
<div class="form-control"> <input type="text" id="inputField" /> </div> <span id="iconSpan"><img src="icon.png" onclick="clearInputField()"/></span>в позиции css пядь соответственно,
#iconSpan { position : absolute; top:1%; left :14%; }

Comments