【发布时间】:2015-01-09 22:15:28
【问题描述】:
我的头撞到了墙上,挣扎着需要发布到我的 Arduino 网络服务器并使用它的响应来更新 div 的表单。我已经对此进行了很多搜索,尝试了很多我找到的示例,包括jQuery.post() 上的示例。
这是我的代码:
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script><script>
screen.lockOrientation("portrait") || screen.mozLockOrientation("portrait") || screen.msLockOrientation("portrait");
$("#form").submit(function(event) {
event.preventDefault();
$.post(url, {serial: $("#serial").val()})
.done(function(data) {
$("#monitor").append($(data));});});
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body id="Body">
<h1>>Automação</h1>
<form name="form" id="form" class="form" action="URL" method="POST">
<input type="text" id="serial" name="serial">
<input type="submit" id="enter" value="Enter">
</form>
<div name="monitor" id="monitor" class="monitor"></div>
</body>
</html>
我正在尝试将串行监视器从 Arduino IDE“模拟”到我的网络服务器以进行远程访问。
问题是无论我尝试什么 JavaScript 都不执行发布请求。帖子已执行,但似乎来自没有回调函数的表单(忽略服务器答案),因为如果我从表单中删除 method=POST 或 URL(仅在 JavaScript 中,出于测试目的)帖子不运行。
我从服务器得到的响应是这样的,我希望将其添加到监视器 div:
freeMEMORY() = 6498 bytes<br/>
或
Arduino have been running for: 00 days 01 hours 25 minutes 25 seconds.<br/>
【问题讨论】:
-
console.log(data); -
使用
$(htmlstring)时,htmlstring必须以html标签开始和结束。 api.jquery.com/jQuery/#jQuery2 -
不,我的字面意思是
console.log(data);,就其本身而言,在完成回调中。之后阅读控制台。 -
很抱歉,我不明白您对“$(htmlstring)”的评论。关于 'console.log(data);'正如我所料,什么也没发生,我得到了相同的空白页结果,正如我在帖子中所说,我认为这是因为 POST 是由“表单”而不是“javascript”制作的。
-
啊,当然。那么我们正在从错误的一端进行调试。在
$("#form").submit(...前加一个console.log,会被调用吗?
标签: javascript jquery forms post callback