web-dev-qa-db-fra.com

Modifier l'URL et rediriger à l'aide de jQuery

J'ai du code comme ça,

<form id="abc">
  <input type="text" id="txt" />
</form>

et maintenant je veux rediriger comme ça,

var temp = $("#txt").val();
url = "http://example.com/" + temp;
window.location.replace(url);
// or window.location(url);

Y at-il de toute façon dans jQuery pour résoudre ce problème? Cela me permet toujours d'avoir url = http://example.com.

127
gacon

Comme mentionné dans les autres réponses, vous n'avez pas besoin de jQuery pour le faire; vous pouvez simplement utiliser les propriétés standard.

Cependant, il semble que vous ne sembliez pas connaître la différence entre window.location.replace(url) et window.location = url.

  1. window.location.replace(url) remplace l'emplacement actuel dans la barre d'adresse par un nouvel emplacement. La page qui appelait la fonction ne sera pas incluse dans l'historique du navigateur. Par conséquent, sur le nouvel emplacement, cliquer sur le bouton Précédent de votre navigateur vous ramènerait à la page que vous étiez en train de consulter avant de visiter le document contenant le code JavaScript redirigé.
  2. window.location = url redirige vers le nouvel emplacement. Sur cette nouvelle page, le bouton Précédent de votre navigateur pointe vers la page d'origine contenant le code JavaScript redirigé.

Bien sûr, les deux ont leurs cas d'utilisation, mais il me semble que dans ce cas, vous devriez vous en tenir à ce dernier.

P.S .: Vous avez probablement oublié deux barres obliques après http: à la ligne 2 de votre JavaScript:

url = "http://abc.com/" + temp;
331
Mathias Bynens

te dis le vrai, je ne comprends toujours pas ce dont tu as besoin, mais

window.location(url);

devrait être

window.location = url;

une recherche sur window.location référence vous le dira.

40
balexandre

jQuery n'a pas d'option pour cela, et ne devrait pas en avoir une. C'est un code javascript parfaitement valide et il n'y a aucune raison pour que jQuery fournisse des fonctions d'encapsulation pour cela.

jQuery est juste une bibliothèque au-dessus de javascript, même si vous utilisez jQuery, vous pouvez toujours utiliser du javascript normal.

Btw window.location n'est pas une fonction mais une propriété que vous devez définir comme ceci:

window.location = url;
17
Pim Jager
var temp="/yourapp/";
$(location).attr('href','http://abcd.com'+temp);

Essayez ceci ... utilisé comme alternative

8
user2389005

Essaye ça...

$("#abc").attr("action", "/yourapp/" + temp).submit();

Ce que cela veut dire:

Recherchez un formulaire avec id "abc", modifiez-le attribute nommé "action" puis soumettez-le ...

Cela fonctionne pour moi ... !!!

3
amouat

vous pouvez le faire plus simplement sans jquery

location = "https://example.com/" + txt.value
function send() {
  location = "https://example.com/" + txt.value;
}
<form id="abc">
  <input type="text" id="txt" />
</form>

<button onclick="send()">Send</button>
0
Kamil Kiełczewski