2014-01-11 46 views
1

我想根据文本框的内容更新几个链接。使用文本框更新链接

<script type="text/javascript"> 
var myvar = document.getElementById("textbox").value; 
</script> 

<input type="text" value="ghostbusters" id="textbox"> 
<a href="#" onclick="window.location.href = 'http://www.youtube.com/results?search_query=' + myvar">YouTube</a> 
<a href="#" onclick="window.location.href = 'http://www.imdb.com/find?s=all&q=' + myvar">IMDb</a> 

不管我做什么,似乎对VAR设置为undefined :(

如果我设置VAR MYVAR =“一些文本”;它工作正常,和VAR被添加到URL。 如果我调试它使用alertbox它显示的文本框只是罚款的内容。

林有点新的JavaScript,我究竟做错了什么?

+0

这是一切吗?您还需要一个事件,如点击按钮或丢失对文本框的焦点,以告知您何时将文本输入框中。 – CarlosCervantes

+0

因为我想输入另一个文本而不是“捉鬼敢死队” –

回答

0

这是因为当myvar分配,DOM的ISN”准备好了,所以你需要包装assignmen t的myvar,addEventListener,否则无法获得输入字段的值。

<script type="text/javascript"> 

    var myvar; 

    document.addEventListener('DOMContentLoaded', function DOMContentLoaded() { 
     myvar = document.getElementById("textbox").value; 
    }); 

</script> 

<input type="text" value="ghostbusters" id="textbox"> 
<a href="#" onclick="window.location.href = 'http://www.youtube.com/results?search_query=' + myvar">YouTube</a> 
<a href="#" onclick="window.location.href = 'http://www.imdb.com/find?s=all&q=' + myvar">IMDb</a> 
1

我不以任何方式对知识的JS & HTML,但我的猜测是,你需要扭转的脚本块和输入的顺序。在脚本执行的时候,元素还没有存在,因为它之后被声明了。另外,当页面加载时,myvar会将你在文本框中获得的任何值都取出来,可能不是你想要的。

要动态生成URL,只需在myvar中存储对输入的引用,并在并置期间使用myvar.value。

干杯,

马吕斯

0
<script type="text/javascript"> 
document.addEventListener('DOMContentLoaded', function DOMContentLoaded() { 
    var myele = document.getElementById("textbox"); 
}); 
</script> 

<input type="text" value="ghostbusters" id="textbox"> 
<a href="#" onclick="window.location.href = 'http://www.youtube.com/results?search_query=' + myele.value">YouTube</a> 
<a href="#" onclick="window.location.href = 'http://www.imdb.com/find?s=all&q=' + myele.value">IMDb</a> 

的document.getElementById( “文本”)。值返回一个静态字符串。即使您更改#textbox元素的值,myvar的值也不会更改。