Javascript 变量未定义但警报输出变量

标签 javascript undefined

我一直得到结果未定义但警报输出结果! 有点令人费解,同样的事情发生在 Chrome 和 IE 中。

<!DOCTYPE html>
<html>
  <head>  
  </head> 
<body>


<form id="frm1" action="#" method="post">
  Yammer ID: <input type="text" name="y_id"><br><br>
  <input type="submit" onclick="myFunction()" value="Submit">
</form> 
<p id="demo">uuu</p>

<script> 
function myFunction() {
  frm_i=document.getElementById("frm1");
  result=frm_i.elements[0].value;
  alert (result);
}    
  document.getElementById("demo").innerHTML = result;    
</script>

</body>
</html>

我输入:

document.getElementById("demo").innerHTML = result;

在函数内部,我没有收到错误,uuu 短暂更改为输入文本,然后很快变回 uuu。但我这样就没有收到错误消息。

最佳答案

添加varfrm_iresult和地点:

document.getElementById('demo').innerHTML = result

在函数内部。它超出了范围。

添加了测试服务器以验证成功并将#demo更改为<output>

为了防止表单提交后刷新,可以添加target属性为<form> :

 <form id="frm1" action="http://httpbin.org/post" method="post" target='ifm'> 

target的值可以是您可以控制的任何位置,并且 '_blank'这是一个新页面(就像 anchor 一样)。如果您希望提交无处可去,请使用:

 target='#/'

在此代码段中,我提交到测试服务器,然后使用 iframe 的 name 属性将响应重定向到空白 iframe。

片段

<!DOCTYPE html>
<html>

<head>
</head>

<body>


  <form id="frm1" action="http://httpbin.org/post" method="post" target='ifm'>
    Yammer ID: <input type="text" name="y_id"><br><br>
    <input type="submit" onclick="myFunction()" value="Submit">
    <output id='demo'></output>
  </form>

  <iframe name='ifm' src='about:blank'></iframe>

  <script>
    function myFunction() {
      var frm_i = document.getElementById("frm1");
      var result = frm_i.elements[0].value;
      alert(result);
      document.getElementById("demo").innerHTML = result;
    }
  </script>

</body>

</html>

关于Javascript 变量未定义但警报输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352021/

相关文章:

javascript - 函数是否总是返回值

javascript - 嵌套集合的 Lodash 映射

javascript - [XSS]Expressjs 阻止运行脚本形成 POST 请求

javascript - 为什么在检查之前会用 “var undefined;” 声明未定义?

javascript - 从对象中删除未定义的属性

ruby-on-rails - 是什么导致 "NoMethodError: undefined method ` 包括 ?' for nil:NilClass"

javascript - Angular ng-repeat 内嵌套 ng-option

javascript - 编写 ASYNC CPP nodejs (0.5.3+) 模块

javascript - 固定在窗口顶部的div

javascript - 传递一个函数作为 Javascript 中可能尚不存在的参数