2014-12-19 60 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

相关问题