Use the HTML5 autofocus attribute, and focus on load for browsers
which don't support it.
Also change the removal of the "Where am I?" prompt to happen on
input rather than when the field is focused, so that it is properly
removed and restored when the field has been autofocused.
Fixes https://trac.openstreetmap.org/ticket/5065
};
page.load = function() {
};
page.load = function() {
+ if (!("autofocus" in document.createElement("input"))) {
+ $(".search_form input[name=query]").focus();
+ }
return map.getState();
};
return map.getState();
};
OSM.Search = function(map) {
$(".search_form input[name=query]")
OSM.Search = function(map) {
$(".search_form input[name=query]")
- .on("focus", function() {
- $(".describe_location").fadeOut(100);
+ .on("input", function(e) {
+ if ($(e.target).val() == "") {
+ $(".describe_location").fadeIn(100);
+ } else {
+ $(".describe_location").fadeOut(100);
+ }
- .on("blur", function() {
- $(".describe_location").fadeIn(100);
- });
$("#sidebar_content")
.on("click", ".search_more a", clickSearchMore)
$("#sidebar_content")
.on("click", ".search_more a", clickSearchMore)
map.removeLayer(marker);
map.removeObject();
$(".search_form input[name=query]").val("");
map.removeLayer(marker);
map.removeObject();
$(".search_form input[name=query]").val("");
+ $(".describe_location").fadeIn(100);
<%= form_tag search_path, :class => "search_form" do %>
<%= submit_tag t('site.search.submit_text') %>
<div class='query_wrapper'>
<%= form_tag search_path, :class => "search_form" do %>
<%= submit_tag t('site.search.submit_text') %>
<div class='query_wrapper'>
- <input type="text" name="query" value="<%= params[:query] %>" placeholder="<%= t('site.search.search') %>">
+ <input type="text" name="query" value="<%= params[:query] %>" placeholder="<%= t('site.search.search') %>" autofocus>
<%= link_to t('site.search.where_am_i'), '#', { :class => "describe_location", :title => t('site.search.where_am_i_title') } %>
</div>
<% end %>
<%= link_to t('site.search.where_am_i'), '#', { :class => "describe_location", :title => t('site.search.where_am_i_title') } %>
</div>
<% end %>