【问题标题】:Form Post Callback表单发布回调
【发布时间】: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


【解决方案1】:

编辑:我认为实际的错误是你有$(data),你应该只有data(你传递给回调函数的参数(.done)。我已经编辑了我的回答反映了这一点。

我没有看到 JS 变量 url 在实际操作页面中设置的位置。

试试这个,并在form 标签上记录action 属性:

$("#form").submit(function(event) {
    event.preventDefault();
    $.post($(this).attr("action"), { serial: $("#serial").val() })
    .done(function(data) {
        $("#monitor").append(data);
    });
});

【讨论】:

  • 其实 url 不是变量,我只是删除了 IP。它不起作用,执行了 POST 但响应显示在空白页面中,而不是在 div 中(与以前相同)。
猜你喜欢
  • 2021-10-31
  • 2011-01-20
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2013-06-21
  • 1970-01-01
相关资源
最近更新 更多