2017-06-09 41 views
0

如果我将this exactly复制到我的代码中,则表示测试未定义。我已经尝试了至少五页这样的代码,并且他们都发生了错误。我需要从用户那里获取一个数字,并将其分配给我的script.js中的一个变量,然后才能够使用该变量。获取用户输入并用作js中的变量

+0

请添加你的代码 – xsami

回答

0
<input type="text" id="txt" /> 
<button id="sub">submit</button> 
<script> 
const btn =document.getElementById("sub"); 
let val; 
btn.addEventListener("click",get_val); 
function get_val(){ 
val = 
document.getElementById("txt").value;} 
//Use it as you want 
console.log(val); 

</script> 
+0

这使错误“未捕获的SyntaxError:缺少初始化在常量声明” –

+0

对不起,瓦尔变量必须要是标记为“常量”初始化,否则你可以使用'let'来声明一个要重新初始化的变量。我修复了代码。 –

+0

谢谢,我会再试一次。 –

1

我想我知道你的问题是什么。我已在此fiddle中重新模拟它。

最有可能你的问题是你把这段代码放在头上。这导致功能test()未定义为任何HTML。相反,您应该将该功能包含在正文中的脚本标签中。因此,要比较,这将无法工作,并给予错误测试是不确定

<html> 
    <head> 
     <script> 
      function test() { 
       var value = document.getElementById('userInput').value; 
       alert(value); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="text" id="userInput" placeholder="Give me a value"> 
     <button onclick="test();">Submit</button> 
    </body> 
</html> 

而这将:

<html> 
    <head> 

    </head> 
    <body> 
     <input type="text" id="userInput" placeholder="Give me a value"> 
     <button onclick="test();">Submit</button> 

     <script> 
      function test() { 
       var value = document.getElementById('userInput').value; 
       alert(value); 
      } 
     </script> 
    </body> 
</html> 

在一个HTML文件和脚本文件,它看起来像分离这此(测试和工作):

的test.html:

<html> 
    <body> 
     <script src="test.js"></script> 

     <input type="text" id="userInput" placeholder="Give me a value"> 
     <button onclick="test();">Submit</button> 
    </body> 
</html> 

test.js:

function test() { 
    var value = document.getElementById('userInput').value; 
    alert(value); 
} 
+0

我可以在我的script.js文件中使用它吗?我从不添加CSS或JS到HTML。在我的js文件是我拥有它的地方。 –

+0

这很好,但也要确保在脚本文件中包含脚本文件,而不是头部。 –

+0

我当然有。脚本的其余部分运行。 –