de la fenêtre.emplacement.href ne fonctionne pas
Mon site est http://www.collegeanswerz.com/. Je suis à l'aide de rails. Le code est à la recherche pour les collèges. Je veux que l'utilisateur soit capable de taper dans les collèges de nom, cliquez sur entrer, et l'url, plutôt que de voir les résultats de la recherche (si l'utilisateur saisit le nom correctement. si non j'en veux pour preuve les résultats de la recherche). Je suis l'aide de "a" et "stackoverflow.com" comme des espaces réservés alors que j'essaie de l'obtenir pour fonctionner.
Je suis à l'aide de la fenêtre.emplacement.href basée sur ceci: Comment faire pour rediriger vers une autre page web en JavaScript/jQuery?
javascript
$("#search_text").submit(function() {
if ($("#search_field").val() == "a")
{
window.location.href = "http://stackoverflow.com";
alert('worked');
}
});
fichier de mise en page
<%= form_tag("/search", :method => 'get', :id => 'search_text', :class => 'form_search') do -%>
<div id="search"> <%= search_field_tag :search, params[:search], :placeholder => 'enter college', :id => "search_field", :class => 'input-medium search-query' %></div>
<% end -%>
static_pages_controller.rb
def search
@colleges = College.search(params[:search])
end
De l'alerte de travail, qui me dit que les choses à l'intérieur, si l'instruction doit être exécutée. Mais c'est me prendre à la normale dans les résultats de recherche à la place de stackoverflow.com. Pourquoi est-ce?
Je n'ai pas downvote la question, mais à tout le moins, vous devriez indiquer le code HTML du formulaire.
Bien sûr, je vais modifier la question.
double possible de window.location() pas de travail, pas de l'ouverture de la page
Afficher le code HTML généré, pas le code Ruby.
OriginalL'auteur Adam Zerner | 2013-08-18
Vous devez vous connecter pour publier un commentaire.
Le navigateur est toujours soumettez le formulaire, une fois votre code s'exécute.
Ajouter
return false;
le gestionnaire d'événements pour l'en empêcher.Vous avez juste a sauvé ma vie.
Mais si je retourne false, la fonction envoyer est d'aucune utilité.
Cette juste travaillé comme un charme. Merci!
OriginalL'auteur
Essayer cette
Ou vous pouvez faire quelque chose comme ceci
et ajouter un return false à la fin de votre appel de fonction
Vous avez ajouté à la réponse correcte (return false) longtemps après avoir obtenu ces downvotes.
A été l'édition de ma Réponse, et dans le temps, a obtenu ces votes contre. Mais n'est-il pas judicieux d'ajouter les commentaires avant vers le bas-droit de vote comme ces bas à droit de vote va me faire penser à répondre à la question maintenant
Si elle vous fait réfléchir avant de répondre... mission accomplie.
En donnant un faux ou de mauvaise réponse obtiendrez la réponse downvoted. L'édition tard, il dit ce qu'une autre réponse déjà dit (intentionnellement ou pas) ne sera pas renverser la situation. Lorsque vous modifiez votre réponse telle qu'il devient juste un doublon de l'autre, de le supprimer.
OriginalL'auteur
Veuillez vérifier que vous utilisez
//
pas\\
par erreur , comme ci-dessousOriginalL'auteur
HTML5 introduit l'histoire.pushState() et de l'histoire.replaceState (), méthodes qui vous permettent d'ajouter et de modifier les entrées de l'historique, respectivement. Et comme je sais, vous pouvez utiliser le pushState fonction comme le code suivant pour résoudre votre problème.
l'histoire.pushState(null, null, "http://stackoverflow.com")
Plus d'informations sur les nouvelles fonctionnalités de HTML5 pour gérer ce genre de problème sont disponibles ici.
OriginalL'auteur