2015-02-11 79 views
0

现在,这只是为未来的项目参考,但我想调用一个读取字符串,但后显示一个浮动的函数。所以我首先检查字符串,然后显示一个随机数字。我认为,我遇到的问题是document.getElementById部分。有什么建议么??外部JavaScript文件问题

HTML文件:

<html> 
    <body> 
     <input type="text" id="letter" value=""/><br/> 
     <input type="button" value="LETS DO THIS!" onclick="floatNum();"/></br> 

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

外部JS文件:

function floatNum() 
{ 
    var val1 = document.getElementById("letter"); 

    if (isNaN(val1) 
    { 
     alert(Math.random()) 
    } 
} 

回答

0

下面的代码工作: - 在你的代码,你错过了右括号“)”靠近“如果条件”

<!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>demo</title> 
     <script type="text/javascript"> 
      function floatNum() 
      { 
       var letter = document.getElementById("letter"); 

       if (isNaN(letter.value))// using input fields value not the whole object 
       { 
        alert(Math.random()); 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <input type="text" id="letter" value="" /><br /> 
     <input type="button" value="LETS DO THIS!" onclick="floatNum();" /> 

    </body> 
    </html> 
+0

感谢帮助家伙! – Ciph333r 2015-02-11 17:23:28

0

是的,你要在元素传递的功能,像这样:

<input type="button" value="LETS DO THIS!" onclick="floatNum(document.getElementById('letter'))"/></br> 

而且在你的JS

function floatNum(el) 
{ 
    if (isNaN(el) 
    { 
     alert(Math.random()) 
    } 
} 

在可重用函数的情况下 - 尽量不要依赖于您的DOM。想想如果你重命名你的元素或想再次使用这个函数会发生什么。你以前不能 - 现在你可以。

+0

感谢提示它真的有帮助 – Ciph333r 2015-02-11 17:28:20

0

的问题是在这条线:

var val1 = document.getElementById("letter"); 

它应该是:

var val1 = document.getElementById("letter").value; 

第一组val1 DOM元素表示输入标记时,它的第二组的文本值输入标签(其内容)。

0

您需要处理输入字段的而不是输入字段本身。

function floatNum() 
{ 
    var letter = document.getElementById("letter"); 

    if (isNaN(letter.value) // using input fields value not the whole object 
    { 
     alert(Math.random()) 
    } 
} 
0

您不抓取输入值,而是输入本身。

正确的代码是:

var val1 = document.getElementById("letter").value;