以下代码有什么问题吗? (HTML / JavaScript的/ HREF)

时间:2012-11-17 23:47:45

标签: javascript html forms hyperlink href

<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。我是以正确的方式来做这件事吗?

1 个答案:

答案 0 :(得分: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。