2013-10-07 68 views
0

我正在努力將一個值放入文本輸入框,並將其作爲用戶鍵入的另一個文本輸入框。 我得到了一切工作jsfiddle,但由於某種原因,我不能讓它的工作,如果我在任何地方使用它。我使用純JavaScript,而不是jQuery。使用Javascript自動傳遞輸入值

所以,這裏是我的html代碼

<input id="imput1" type="text" class="firstbox"> 
    <p>Box to Retrieve The Input</p> 
    <br /> 

    <input id="gift_card_recipient" type="text" class="replica" value="box1" /> 
    <input type="text" class="replica2" value="box2" /> 

而且我是用傳遞值作爲用戶類型,從第一箱的JavaScript,爲第二個框:

(function() { 
var var1 = document.getElementById('imput1'), 
    var2 = document.getElementById('gift_card_recipient'), 
    callback = function() { 
     var2.value = this.value; 
    }; 

if (var1.addEventListener) { 
    var1.addEventListener('keyup', callback); 
} else { 
    var1.attachEvent('onkeyup', callback); 
} 
}()); 

再次,我得到了這個工作在jsfiddle,這是一個演示它的樣子,但由於某種原因,如果我用我的電腦上的HTML文件,或在我的服務器上,它不會工作。 我將頭文件中的js文件鏈接起來,並在chrome中檢查它。這裏是我從鉻得到的錯誤:

Uncaught TypeError: Cannot read property 'addEventListener' of null 

不知道爲什麼它扔了。但這裏是我真正有用的jsfiddle。但不在服務器或我的電腦上:http://jsfiddle.net/C3SPM/

+0

你在哪裏添加JavaScript代碼..?嘗試在結束標記之前添加它,如果尚未...! –

+0

我自己有一個文件的JavaScript,並通過頭鏈接它。 – user2759977

回答

0

將腳本塊包含在主體的末尾(或有問題的元素之後)。或者將你的代碼包裝在onload/onDomReady處理程序中。

您得到的具體錯誤是因爲您的代碼在解析元素之前運行,這意味着document.getElementById('imput1')返回null,因爲它找不到該元素。它在小提琴中工作的原因是,默認情況下,jsfiddle將所有JS包裝在onload處理程序中,因此當代碼運行時,已解析(您可以使用左下方的下拉列表在jsfiddle中更改此設置「框架&擴展」)。

+0

因此,如果我將它放在我的網站或頁面的頁腳中,它會正確執行嗎? – user2759977

+0

這將取決於你的頁腳定義在哪裏。在''元素中包含'

相關問題