Giải pháp HTML 5 siêu đơn giản:
<input type="search" placeholder="Search..." />
Nguồn: Hướng dẫn HTML 5 - Loại đầu vào: Tìm kiếm
Điều đó hoạt động trong ít nhất Chrome 8, Edge 14, IE 10 và Safari 5 và không yêu cầu Bootstrap hoặc bất kỳ thư viện nào khác. (Thật không may, có vẻ như Firefox chưa hỗ trợ nút xóa tìm kiếm.)
Sau khi nhập vào hộp tìm kiếm, dấu 'x' sẽ xuất hiện, bạn có thể nhấp vào để xóa văn bản. Điều này sẽ vẫn hoạt động như một hộp chỉnh sửa thông thường (không có nút 'x') trong các trình duyệt khác, chẳng hạn như Firefox, vì vậy người dùng Firefox thay vào đó có thể chọn văn bản và nhấn xóa, hoặc ...
Nếu bạn thực sự cần tính năng tuyệt vời này được hỗ trợ trong Firefox, thì bạn có thể triển khai một trong các giải pháp khác được đăng ở đây dưới dạng polyfill cho các phần tử [type = search] đầu vào. Polyfill là mã tự động thêm tính năng trình duyệt tiêu chuẩn khi trình duyệt của người dùng không hỗ trợ tính năng này. Theo thời gian, hy vọng là bạn có thể loại bỏ các polyfills khi các trình duyệt triển khai các tính năng tương ứng. Và trong mọi trường hợp, việc triển khai polyfill có thể giúp giữ cho mã HTML sạch hơn.
Nhân tiện, các kiểu nhập HTML 5 khác (chẳng hạn như "ngày tháng", "số", "email", v.v.) cũng sẽ chuyển sang một hộp soạn thảo thuần túy. Một số trình duyệt có thể cung cấp cho bạn một công cụ chọn ngày ưa thích, một điều khiển xoay với các nút lên / xuống hoặc (trên điện thoại di động) một bàn phím đặc biệt bao gồm ký hiệu '@' và nút '.com', nhưng theo hiểu biết của tôi, tất cả các trình duyệt ít nhất sẽ hiển thị một hộp văn bản thuần túy cho bất kỳ loại đầu vào không được công nhận nào.
Giải pháp Bootstrap 3 & HTML 5
Bootstrap 3 đặt lại rất nhiều CSS và phá vỡ nút hủy tìm kiếm HTML 5. Sau khi CSS Bootstrap 3 đã được tải, bạn có thể khôi phục nút hủy tìm kiếm bằng CSS được sử dụng trong ví dụ sau:
<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>
Nguồn: Đầu vào tìm kiếm HTML 5 không hoạt động với Bootstrap
Tôi đã kiểm tra rằng giải pháp này hoạt động trong các phiên bản mới nhất của Chrome, Edge và Internet Explorer. Tôi không thể kiểm tra trong Safari. Thật không may, nút 'x' để xóa tìm kiếm không xuất hiện trong Firefox, nhưng như trên, một polyfill có thể được triển khai cho các trình duyệt không hỗ trợ tính năng này nguyên bản (tức là Firefox).