表格邮寄回调

时间:2015-01-09 22:15:28

标签: javascript jquery forms post callback

我正撞在墙上,挣扎着需要发布到我的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>
&#13;
<!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>
&#13;
&#13;
&#13;

我试图&#34;模仿&#34;从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/>

1 个答案:

答案 0 :(得分:0)

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

我不知道JS变量url在实际操作页面中的位置。

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

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