Как очистить поле поиска с помощью " x " в bootstrap 3?



возникли некоторые проблемы с bootstrap, так что некоторая помощь будет удивительным. Спасибо



что бы я хотел: (верхняя часть)



enter image description here



мой текущий код:



<div class="form-group">
<input type="text"
class="form-control"
id="findJobTitle"
name="findJobTitle"
placeholder="Job Title, Keywords"
onkeyup="showResult()">
</div>


Текущий Скриншот:



enter image description here

1169   9  

9 ответов:

чтобы сделать что-то вроде этого

input with clear button

С 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

    Ничего не найдено.