Маленькое "x" в текстовом поле ввода на iphone в mobileSafari?
Я везде искал это без везения. Если вы перейдете на google.com на iphone, когда вы сосредоточитесь на поле поиска, немного "х" появится полностью справа, и если вы коснетесь его, оно очистит текущее значение поля. Кто-нибудь знает, как это сделать?
Ответы
Ответ 1
Я использовал меню разработки в Safari и изменил пользовательский агент на iPhone. Просмотр источника в Google, похоже, они установили свой html следующим образом:
<div class="gp2">
<input class="gp7" id="query" type="text" name="q" size="30" maxlength="2048" autocorrect="off" autocomplete="off" />
<a class="clear" id="clearQuery" href="#">
<img src="data:image/gif;base64,R0lGODlhAQABAID%2FAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D" alt="" />
</a>
и используют этот javascript:
function initClearQueryLink(query,clearQuery){
clearQuery.setAttribute("title","Clear");
clearQuery.addEventListener("mousedown",clearQueryBox,true);
query.addEventListener("keyup",_handleClearQueryLink,false)
}
function _handleClearQueryLink(){
var query=document.getElementById("query");
var clearQuery=document.getElementById("clearQuery");
if(clearQuery)
if(query.value.length>0){
clearQuery.style.display="inline";
clearQuery.style.visibility="visible"
} else{
clearQuery.style.display="none";
clearQuery.style.visibility="hidden"
}
}
function clearQueryBox(event){
var query=document.getElementById("query");
var clearQuery=document.getElementById("clearQuery");
query.value="";
clearQuery.style.display="none";
clearQuery.style.visibility="hidden";
hideSuggest();
if(event)event.preventDefault()
}
Ответ 2
Это особый тип ввода, разработанный Apple и не одобренный W3C. Если вы используете его, он отлично работает в браузерах, которые его не распознают.
<input type="search" name="q" />
Существуют и другие параметры, включая имя домена и результаты поиска, чтобы пользователь мог использовать свою историю поиска. Google, как использовать их.
Ответ 3
Хитрость заключается в том, чтобы прослушивать/привязывать событие на mousedown таким образом, что событие клика никогда не срабатывает, и ваш элемент ввода не теряет фокус. Как в примере Google выше.
Ответ 4
Хорошим ресурсом для веб-разработки iPhone является iphonewebdev.
Однако похоже, что эта особенность не является частью API Apple (по крайней мере, из моего исследования), а является чистой реализацией javascript/css.
Вы можете создать его с помощью следующего:
<script>
window.onload = function() {
var btn = document.getElementById("clear_input");
btn.onclick = function() {
var div = btn.parentNode;
var input = div.getElementsByTagName("input")[0];
input.value = "";
return false;
}
}
</script>
<div>
<input type="text" /><a href="#" id="clear_input">X</a>
</div>
Вы должны стилизовать X как образ, чтобы он смешивался внутри ввода. И, конечно, я настоятельно рекомендую использовать фреймворк JavaScript, если вы можете.
Ответ 5
JQuery mobile предоставляет следующее:
http://jquerymobile.com/test/docs/forms/search/
Ответ 6
И это моя версия jQuery, она скрывает ее в начале, и если пользователь удаляет введенное, он удаляет "x". Также, когда они удалили текст с помощью кнопки, он также скроет "x".
HTML
<input type="search" name="search" id="search" />
<a href="#" class="clear_input">X</a>
JavaScript
$('.clear_input').hide();
$('#search').keyup(function() {
var search = $(this).val().replace(/^\s+|\s+$/g,"");
if (search.length >= 1) {
$('.clear_input').show();
} else {
$('.clear_input').hide();
}
$('.clear_input').click(function() {
$('#search').val('');
$('.clear_input').hide();
});
});
Версия JavaScript быстрее, чем версия jQuery, конечно.