2010-09-17 55 views
0

我有一个运行httpd的嵌入式应用程序用于Web服务器。在主页上我有两个按钮。其中用了jQuery用下面的代码添加Click事件:

$获得( “example.cgi”);

另一个按钮是一个空白表单的提交按钮(即表单标签以及type =“submit”的输入以外的表单不包含任何字段)。表单的方法设置为“get”,动作设置为“example.cgi”。当我按下按钮时,脚本失败。当我按下按钮二时,嵌入式设备会作出相应的响应。

我真的很想在整个项目中使用JQuery(例如,特别是我没有在我的页面上使用空白表格......),但是我无法弄清楚在空白区域之间会有什么区别用一个方法“get”和一个JQuery $ .get();形成。有谁知道可能会发生什么?

UPDATE:

的全部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,我必须每次都用这个静态代码刷新嵌入式设备...)。尽管点击事件中的那些方法都不起作用。然而,空白表单却行得通,而我原来的问题是那个空白表单和jquery在'fon'按钮的点击事件中的区别是什么?我认为他们应该表现得一样...

+0

“失败”是什么意思?这两个不相同 – NullUserException 2010-09-17 12:08:50

+0

不。后台代码从未运行JQuery get。它运行空白表单提交。看起来好像httpd甚至不会将JQuery看作接收信息。但是,我想知道为什么它看到一个JQuery与空白表单method = get不同。我认为在背后的信息会看起来相同,不是吗? – trh178 2010-09-17 12:14:05

+0

你可以发布JavaScript/jQuery代码和HTML吗? – Jeff 2010-09-17 12:19:14

回答

1

由于@Nithesh评论,$。员额()是真的,当你没有得到信息反馈的工作的工具。作为奖励,POST请求不应该被浏览器缓存,但GET请求可以,理论上这可能是你的问题。

此外,您的空白表格并非真正的空白 - 提交按钮有一个名称和值作为参数提交。是否有可能您的cgi脚本是问题所在?这似乎不大可能,但我不得不问...

为了诊断,你可能想要做这样的事情:

$("#fon").click(function(event) { 
    $.post("rflcc.cgi", function() { alert "Done!"; }); 
}); 

会告诉你,如果该请求是发生在所有。如果您还没有,请查看Firefox的FireBug插件,作为帮助诊断Ajax内容的工具。

+0

我有萤火虫,即时通讯不太确定要看什么。对于这样的问题之前,我总是检查'网络'选项卡。我可以看到请求什么时候发生,什么时候发生,但是关于我在这方面知识的程度。即时通讯将尝试你刚刚发布的内容,但我想看看这个作品是否有效。 – trh178 2010-09-17 14:49:25

+0

发现问题...完全无关。我标记了你的答案,因为它让我发现了真正的问题。谢谢 – trh178 2010-09-17 15:18:38

3

您确定您正确地使用$.get。它异步获取页面并执行您指定的回调函数。另一方面,当空表单被提交时,页面被改变。

这将适用于你。

HTML

<button id="get">Get</button> 
<div id="target"></div> 

Javascript

$('#get').click(function() { 
    $.get('example.cgi', function(data) { 
     $('#target').html(data); 
    }); 
}); 
+0

我已经阅读了jQuery获取文档,和它说我可以用它仅调用。获得$(“example.cgi”);.我可以尝试上面的代码,但只是为了确保。 – trh178 2010-09-17 12:35:02

+0

它合法地调用$ .get('example.cgi'),但返回的数据会丢失。我不知道为什么它甚至被允许,但这是它的工作原理。如果你想对返回的数据做些什么,你必须定义一个回调函数。如果你有兴趣,有一个更简单的选择。检查JQuery文档中的“加载”函数。 – 2010-09-17 12:48:46

+0

也许我们已经达到了我的问题的来源。在这一点上,我不想对返回数据做任何事情。上面的这些按钮打开和关闭灯。我所关心的是'rflcc.cgi'被调用。一旦它发生,无论它返回什么都可能被丢弃。我应该使用jQuery负载吗? (感谢您的耐心,我是jquery的新手) – trh178 2010-09-17 12:56:08