我有一个为Web服务器运行httpd的嵌入式应用程序。在主页面上我有两个按钮。一个使用JQuery添加具有以下代码的click事件:
。$得到( “example.cgi”);
另一个按钮是空白表单的提交按钮(即除了表单标签和输入类型=“提交”,表单不包含任何字段)。表单的方法设置为“get”,操作设置为“example.cgi”。当我按下按钮1时,脚本失败。当我按下按钮2时,嵌入式设备会相应地做出响应。
我真的很想在整个项目中使用JQuery(例如,特别是所以我不必在我的页面上都有空白表单......),但我无法弄清楚空白表单之间的区别使用方法“get”和JQuery $ .get();.有谁知道可能会发生什么?
更新:
完整的html和js代码 -
<!doctype html>
<html>
<head>
<title>LCRFLC on the WEB</title>
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
// add click events
$("#off").click(function(event)
{
$.get("rflcc.cgi", { cmd: "RAMP", lvl: "0" } );
});
$("#fon").click(function(event)
{
$.get("rflcc.cgi");
});
});
</script>
</head>
<body>
<h1>TEST PAGE FOR RFLC CONTROL AND STATUS</h1>
<input type="button" value="Off" id="off">
<input type="button" value="Full On" id="fon">
<form method="get" action="rflcc.cgi" id="alt" name="alt">
alternate method
<input type="submit" value="Another try" name="altsubmit">
</form>
<br>
<textarea cols="80" rows="50"></textarea>
</body>
</html>
现在可能需要更多解释,所以我会稍作尝试。两次点击事件不同的唯一原因是我可以尝试两个不同的东西,一次加载(bc我必须每次用这个静态代码刷新嵌入式设备......)。但是这些get事件中的方法都不起作用。然而,空白表格是否正常工作,我原来的问题是该空白表格和jquery在“fon”按钮的点击事件中的区别是什么?我以为他们应该表现得一样......
答案 0 :(得分:3)
您确定正确使用$.get
吗?它异步提取页面并执行您指定的回调函数。另一方面,当提交空表单时,页面会被更改。
这对你有用。
HTML
<button id="get">Get</button>
<div id="target"></div>
Javascript
$('#get').click(function() {
$.get('example.cgi', function(data) {
$('#target').html(data);
});
});
答案 1 :(得分:1)
正如@Nithesh评论的那样,当你没有收到信息时,$ .post()确实是工作的正确工具。作为奖励,POST请求永远不应该被浏览器缓存,但GET请求可以是,理论上可能是你的问题。
此外,您的空白表单并非真正空白 - 提交按钮的名称和值将作为参数提交。您的cgi脚本可能是问题所在吗?这似乎不太可能,但我不得不问......
出于诊断目的,您可能希望执行以下操作:
$("#fon").click(function(event) {
$.post("rflcc.cgi", function() { alert "Done!"; });
});
这将告诉您该请求是否正在发生。如果您还没有,请查看Firefox的FireBug插件作为帮助诊断Ajax内容的工具。