1
<html>
<title>My Web Page</title>

<form onsubmit="return redirect()">
<input id="search_form_input" type="text" name="query" />
<input type="submit" value="Search" />
</form>

<script type="text/javascript">
function redirect() {
var link = document.getElementById('link');
link.href += document.getElementById('search_form_input')
return false;
}
</script>

<body>
<p>
<a id="link" href="http://www.cnn.com/">CNN</a>
</p>
</body>
</html>

基本的には、フォームからの入力を CNN.com の URL に拡張するようなものです。たとえば、政治をフォームに入力して送信し、CNN リンクをクリックすると CNN.com/politics に移動します。私はこれを正しい方法で行っていますか?

4

1 に答える 1

3

あなたが何をしているのか、どのようにしているのかはクレイジーです。他の解決策に進みますが、問題は単純です。要素全体を文字列にアタッチしていhrefます。だから代わりに

link.href += document.getElementById('search_form_input')

使用する

link.href += document.getElementById('search_form_input').value

完全な結果は次のとおりです。

<html>
<title>My Web Page</title>

<form onsubmit="return redirect()">
<input id="search_form_input" type="text" name="query" />
<input type="submit" value="Search" />
</form>

<script type="text/javascript">
function redirect() {
var link = document.getElementById('link');
link.href += document.getElementById('search_form_input').value
return false;
}
</script>

<body>
<p>
<a id="link" href="http://www.cnn.com/">CNN</a>
</p>
</body>
</html>​

少なくとも jQuery を試してみてください。

于 2012-11-18T00:06:30.097 に答える