Czy istnieje szybki sposób na utworzenie wejściowego elementu tekstowego z ikoną po prawej stronie, aby wyczyścić sam element wejściowy (np. Pole wyszukiwania Google)?
Rozejrzałem się, ale znalazłem tylko sposób umieszczenia ikony jako tła elementu wejściowego. Czy istnieje wtyczka jQuery lub coś innego?
Chcę ikonę wewnątrz wejściowego elementu tekstowego, coś w stylu:
--------------------------------------------------
| X|
--------------------------------------------------
javascript
jquery
html
css
Giovanni Di Milia
źródło
źródło
Odpowiedzi:
Dodaj
type="search"
do swoich danychWsparcie jest całkiem przyzwoite, ale nie będzie działać w IE <10
Kasowalne dane wejściowe dla starych przeglądarek
Jeśli potrzebujesz pomocy IE9, oto kilka obejść
Używanie standardowego
<input type="text">
i niektórych elementów HTML:Używanie tylko
<input class="clearable" type="text">
(Bez dodatkowych elementów)ustaw
class="clearable"
i graj z jego obrazem tła:Demo jsBin
Sztuką jest ustawienie odpowiedniego dopełnienia (użyłem 18 pikseli)
input
i przesunięcie obrazu tła w prawo, poza zasięgiem wzroku (użyłemright -10px center
).Wypełnienie 18px zapobiegnie ukryciu tekstu pod ikoną (gdy jest widoczny).
jQ doda klasę
x
(jeśliinput
ma wartość) pokazującą ikonę usuwania.Teraz wystarczy namierzyć za pomocą jQ dane wejściowe za pomocą klasy
x
i wykryć,mousemove
czy mysz znajduje się w tym obszarze „x” o wielkości 18 pikseli; jeśli jest w środku, dodaj klasęonX
.Kliknięcie
onX
klasy usuwa wszystkie klasy, resetuje wartość wejściową i ukrywa ikonę.7x7px gif:
Ciąg Base64:
źródło
.on('touchstart click', '.onX', ...
się.on('touchstart click', '.onX, .x', ...
, aby to działało na iOS.Czy mogę zasugerować, jeśli nie masz nic przeciwko ograniczeniu przeglądarki do html 5, po prostu używając:
Demo JS Fiddle
Trzeba przyznać, że w Chromium (Ubuntu 11.04) wymaga to umieszczenia tekstu wewnątrz
input
elementu, zanim pojawi się obraz / funkcja czystego tekstu.Odniesienie:
źródło
Możesz użyć przycisku resetowania z obrazem ...
Zobacz to w akcji tutaj: http://jsbin.com/uloli3/63
źródło
Stworzyłem możliwe do wyczyszczenia pole tekstowe w samym CSS. Nie wymaga kodu javascript, aby działał
poniżej znajduje się link do wersji demo
http://codepen.io/shidhincr/pen/ICLBD
źródło
Według MDN ,
<input type="search" />
jest obecnie dostępna we wszystkich nowoczesnych przeglądarek:Jeśli jednak chcesz mieć różne zachowanie spójne w różnych przeglądarkach, oto kilka lekkich alternatyw, które wymagają tylko JavaScript:
Opcja 1 - Zawsze wyświetlaj „x”: (przykład tutaj)
Opcja 2 - Wyświetlaj „x” tylko podczas najechania kursorem na pole: (przykład tutaj)
Opcja 3 - wyświetlaj „x” tylko, jeśli
input
element ma wartość: (przykład tutaj)źródło
Ponieważ żadne z latających rozwiązań nie spełniało naszych wymagań, opracowaliśmy prostą wtyczkę jQuery o nazwie jQuery-ClearSearch -
korzystanie z niego jest tak proste jak:
Przykład: http://jsfiddle.net/wldaunfr/FERw3/
źródło
EDYCJA: Znalazłem ten link. Mam nadzieję, że to pomoże. http://viralpatel.net/blogs/2011/02/clearable-textbox-jquery.html
Wspomniałeś, że chcesz go po prawej stronie tekstu wejściowego. Najlepszym sposobem byłoby utworzenie obrazu obok pola wprowadzania. Jeśli szukasz czegoś w polu, możesz użyć obrazu tła, ale możesz nie być w stanie napisać skryptu, aby wyczyścić pole.
Tak więc wstaw i obrazuj i napisz kod JavaScript, aby wyczyścić pole tekstowe.
źródło
<input type="text" name="Search" value="Search..." onclick="this.value='';">
Jeśli chcesz, tak jak Google, powinieneś wiedzieć, że „X” tak naprawdę nie znajduje się wewnątrz
<input>
- są one obok siebie, a zewnętrzny pojemnik ma wygląd przypominający pole tekstowe.HTML:
CSS:
Przykład: http://jsfiddle.net/VTvNX/
źródło
Coś takiego??
Jsfiddle Demo
źródło
źródło
Możesz to zrobić za pomocą tych poleceń (bez Bootstrap).
źródło
Oto wtyczka jQuery (i demo na końcu).
http://jsfiddle.net/e4qhW/3/
Zrobiłem to głównie w celu zilustrowania przykładu (i osobistego wyzwania). Chociaż opinie są mile widziane, inne odpowiedzi są dobrze rozdane na czas i zasługują na należyte uznanie.
Mimo to, moim zdaniem, jest to nadmiernie inżynieryjne wzdęcie (chyba że stanowi część biblioteki interfejsu użytkownika).
źródło
x
przyciskuNapisałem prosty komponent używając jQuery i bootstrap. Spróbuj: https://github.com/mahpour/bootstrap-input-clear-button
źródło
Za pomocą wtyczki jquery dostosowałem ją do moich potrzeb, dodając niestandardowe opcje i tworząc nową wtyczkę. Można go znaleźć tutaj: https://github.com/david-dlc-cerezo/jquery-clearField
Przykład prostego użycia:
Uzyskanie czegoś takiego:
źródło
jQuery Mobile ma teraz wbudowane:
Dokumenty Jquery Mobile API TextInput
źródło
Nie trzeba dołączać plików CSS ani obrazów. Nie trzeba dołączać całej biblioteki jQuery interfejsu użytkownika ciężkiej artylerii. Napisałem lekką wtyczkę jQuery, która robi dla ciebie magię. Wszystko czego potrzebujesz to
jQuery
i wtyczki . =)Fiddle tutaj: demo jQuery InputSearch .
źródło