Ich habe die getestet input[type="search"]
und es zeigt nicht das Klare (x)
Symbol, wenn die Bootstrap-Stile angewendet wurden.
Die HTML5-Sucheingabe funktioniert nicht mit Bootstrap
Giolvani
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: searchfield;
}
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: searchfield-cancel-button;
}
funktioniert für mich auf Chrome (auf meinem Mac, aber nicht auf meinem iPhone …)
-
Eigentlich brauchen Sie speziell für die Abbrechen-Schaltfläche nur dieses Bit: Eingabe[type=”search”]::-webkit-search-cancel-button { -webkit-appearance: searchfield-cancel-button; }
– James
19. Oktober 2013 um 4:12 Uhr
-
@Giolvani Bitte machen Sie allen ein solides und markieren Sie dies als die richtige Antwort! Danke Thierry
– Erik Großkurth
10. Februar 2018 um 15:21 Uhr
sk8terboi87 ツ
Ein Problem, das sich auf Ihr Problem bezieht, wurde bereits in ihrem gepostet github
Paystey
Wenn Sie Web Kit verwenden, hängt Ihr Problem möglicherweise mit dem zusammen, was sk8terboi87 gepostet hat.
Bootstrap unterstützt das Styling nicht Search
Geben Sie Eingaben für Sie ein, da dies in Web Kit zu schwierig ist, um dies zuverlässig zu tun.
Bootstrap verwendet ein zurückgesetztes CSS, das das normalerweise angezeigte Kreuz entfernt. Sie können es wiederherstellen, indem Sie das Kern-CSS ändern, aber dies könnte in Zukunft Probleme beim Upgrade verursachen.
Wenn es in anderen Browsern passiert, könnte es ein anderes Problem sein.
Um die gleiche Benutzererfahrung auf allen Geräten zu haben, habe ich schließlich eine Angular-Direktive geschrieben, die ich in Bootstrap ‚input-group-btn‘s eingefügt habe.
Winkelansicht HTML
<div class="input-group">
<input type="search" id="listItemSearch" class="form-control"
placeholder="Search text..."
title="Search" aria-label="Search"
data-ng-model-options="{'debounce':1500, 'updateOn':'blur default'}"
data-ng-model="vm.filters.listItemSearchText"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default"
data-ng-disabled="!vm.filters.listItemSearchText"
aria-describedby="listItemSearch"
data-clear-search-by-aria="#listItemSearch">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</button>
</span>
<span class="input-group-addon">
<span>{{vm.models.listSearchResults.length}}</span>
<span>/</span>
<span>{{vm.data.list.length}}</span>
</span>
</div>
Winkeldirektive JavaScript
.directive( 'clearSearchByAria', ['$parse', function clearSearchByAria( $parse )
{
return(
{
'restrict':'A',
'link':function clearSearchByAria_link( scope, jqElem, ngAttr )
{
jqElem.on( 'click', function( $event )
{
var $clickedElem = angular.element($event.currentTarget);
var $searchInput;
// Specified by selector.
if( !!ngAttr.clearSearchByAria )
{
var $specifiedElem = angular.element(ngAttr.clearSearchByAria)
if( $specifiedElem.length == 1 )
{$searchInput = $specifiedElem;}
}
else
{
var $describedElem = $clickedElem.find( '[aria-describedby]' ).addBack( '[aria-describedby]' );
// Specified by 'aria-describedby'.
if( $describedElem.length == 1 )
{$searchInput = angular.element(''.concat( '#', $describedElem.attr('aria-describedby')));}
else
{
throw( new ReferenceError( "'clear-search-by-aria' attributes requires either 1) to be empty and for the element (or a descendant) to have an 'aria-describedby' attribute referring to another element or 2) to specify an element selector (e.g. '#id') to another element." ));
}
}
if( !!$searchInput && $searchInput.length == 1 )
{
var ng_model = $searchInput.data( 'ngModel' ) || $searchInput.attr( 'ng-model' );
if( !!ng_model )
{
var modelGetter = $parse( ng_model );
modelGetter.assign( scope, '' );
scope.$apply();
}
else
{
$searchInput.val( '' );
}
}
});
},
});
}])`
Ändern Sie Ihren Eingabetyp auf “Suche” statt “Text” und -Webkit-Aussehen: Block statt “Keine”.
Ich bin mir nicht sicher, was Sie hier meinen. Welche Bootstrap-Stile “fügen” Sie hinzu? Das Standarddesign des Sucheingabefelds wird vom Browser bereitgestellt, solange es nicht < IE9 ist. Dann wird es ein Standard-Textfeld sein.
– Paystey
19. Dezember 2012 um 16:35 Uhr
jsfiddle.net/MbDgj/3
– Giolvani
19. Dezember 2012 um 16:39 Uhr
Paystey, es funktioniert, aber wenn ich die Bootstrap-Stile hinzufüge, hört es auf. Siehe den Geigenlink, den ich hinzufüge
– Giolvani
19. Dezember 2012 um 16:45 Uhr