2014-12-19 66 views
0

我對JavaScript很新,我想知道是否有人可以幫我解決這個問題。我有三個文本框,前兩個顯示名字和姓氏。我希望最後一個文本框包含第一個和最後一個。內嵌Javascript工作,但不能在外部工作

下面的代碼:

<!doctype html> 
<html> 
    <head> 
     <title>Javascript Textbox</title> 
    </head> 
    <body> 
     First Name: <input id="fname" type="text" value="John"><br> 
     Last Name: <input id="lname" type="text" value="Smith"><br> 
     <input id="textbox" readonly> 

     <button onclick="textbox.value=fname.value+' '+lname.value">press to see full name</button> 

     <script type="text/javascript" src="testing.js"></script> 
    </body> 

</html> 

這工作得很好,但是當我嘗試使用一個外部文件,testing.js和開關onclick="testFunction()",它不工作了。

testing.js:

function testFunction() { 
    var first = document.getElementById("fname").value; 
    var last = document.getElementById("lname").value; 
    var textb = document.getElementById("textbox").value; 
    textb  = first + " " + last; 
} 
+1

你永遠不會做任何事情TEXTB。只是分配它。 – 2014-12-19 00:28:23

+0

您的文章中的代碼是否真的有用?這似乎不太可能,因爲你有一個語法錯誤 - 你不能在HTML屬性的同一引號內放入JavaScript引號。 – 2014-12-19 00:28:24

+0

您可以向我們展示腳本標記,其中將包含testFunction()的文件加載到HTML中? – ateich 2014-12-19 00:29:12

回答

1

http://jsfiddle.net/1vshky4s/

最終你的問題是,你是分配texb VAR的文本框中的值,然後用一個連接字符串覆蓋它,然後無所事事所有的結果。

function testFunction() 
{ 
    var first = document.getElementById("fname").value; 
    var last = document.getElementById("lname").value; 
    var textb = first + " " + last; 

    document.getElementById("textbox").value = textb; 
} 

實際上做了一些與textb var,你應該很好去。檢查小提琴。

-1

移動:

<script type="text/javascript" src="testing.js"></script 

進入頁面的head。 您嘗試綁定功能,比不存在。 script將在dom後加載。

p.s.或者使用'onload'事件如果window ps.s.s.

這裏正常工作:

function testFunction() 
{ 
    var first = document.getElementById("fname").value; 
    var last = document.getElementById("lname").value; 
    var textb = document.getElementById("textbox"); //! 

    textb.value = first + " " + last; // here was error 

    } 
+1

他爲什麼要將它移動到頭部?這很好。 – 2014-12-19 00:33:59

+0

這根本不正確。 – jfriend00 2014-12-19 00:36:08

+0

YP,它的工作原理是不移動'腳本'。 錯誤在testing.js中。 – sergolius 2014-12-19 00:39:08

1

改變你的函數

function testFunction() { 
    var first = document.getElementById("fname"); 
    var last = document.getElementById("lname"); 
    var textb = document.getElementById("textbox"); 
    textb.value = first.value + " " + last.value; 
} 

jsfiddle demo

相關問題