我一直得到结果未定义但警报输出结果! 有点令人费解,同样的事情发生在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。但是我没有这样的错误信息。
答案 0 :(得分:0)
将var
添加到frm_i
和result
并放置:
document.getElementById('demo').innerHTML = result
功能内部。它超出了范围。
添加了测试服务器以验证成功,并将#demo更改为<output>
为了防止表单在提交后刷新,您可以将target
属性添加到<form>
:
<form id="frm1" action="http://httpbin.org/post" method="post" target='ifm'>
target
的值可以是您可以控制的任何位置,'_blank'
是新页面(就像锚点一样)。如果您希望提交无处可去,请使用:
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>