web-dev-qa-db-ja.com

URLを変更し、jQueryを使ってリダイレクトをする

私はこのようなコードをいくつか持っています、

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

そして今、私はこのようにリダイレクトしたい、

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

これを解決するためにjQueryにとにかくありますか?それでもまだurl = http://example.comを持っています。

125
gacon

他の回答で述べたように、これを行うためにjQueryは必要ありません。あなただけの標準的なプロパティを使用することができます。

しかし、window.location.replace(url)window.location = urlの違いが分からないようです。

  1. window.location.replace(url)は、アドレスバーの現在位置を新しい位置に置き換えます。この関数を呼び出していたページは、ブラウザの履歴には含まれません。したがって、新しい場所でブラウザの戻るボタンをクリックすると、リダイレクトされているJavaScriptを含むドキュメントにアクセスする前に表示していたページに戻ります。
  2. window.location = urlは新しい場所にリダイレクトします。この新しいページでは、ブラウザの戻るボタンは、リダイレクトするJavaScriptを含む元のページを指しています。

もちろん、どちらにもユースケースがありますが、この場合は後者に固執する必要があるようです。

P.S .:おそらく、JavaScriptの2行目のhttp:の後に2つのスラッシュがあるのを忘れています。

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

あなたに本当のことを言いなさい、私はまだあなたが必要とするものを手に入れません、しかし

window.location(url);

あるべき

window.location = url;

window.location referenceを検索するとそれがわかります。

39
balexandre

jQueryにはこのための選択肢はありませんし、選択肢もありません。これは完全に有効なJavaScriptであり、jQueryがこれにラッパー関数を提供する理由はありません。

あなたがjQueryを使っていてもjQueryはjavascriptの上にある単なるライブラリです。

ところで、window.locationは関数ではなく、次のように設定する必要があるプロパティです。

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

これを試してください...代替として使用

8
user2389005

これを試して...

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

その意味:

idが "abc"のフォームを探し、それを "action"という名前のattributeに変更して送信します。

これは私のために働きます... !!!

3
amouat

あなたは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