2014-01-11 73 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的值也不會更改。