-3
#!/usr/bin/perl
print "Content-type: text/html \n\n";
print qq(<html>
<head>
<script type="text/javascript" src="/jquery.js"></script>
<script>
jQuery(document).ready(function(){
jQuery("#form_lang").submit(function(e){

    var str = jQuery(this).serialize();
    alert("dfdaf"); 
    jQuery.ajax({
        type: "POST",
        url:"contacts.pl",
        success: function(){
        jQuery("#note").ajaxComplete(function(event, request, settings){
                    if(msg == 'OK') 
                            alert("Your message!");
                });
            },
          });
});
});
</script>
</head>

这是表格部分:

<form id ="form_lang" action="helloworld.pl" method="POST">
<p>Enter Language: </p>
<input type="text" id="lang" name="lang"  /><br/>
<p>Enter Description: </p>
<textarea id="lang_desc" name="lang_desc"  ></textarea><br/>
<input type="submit" value="submit"  />

在这里,控件上升到警报(“dfdaf”)。之后它被提交给 helloworld.pl...contacts.pl 没有被引用..Y 是吗?那怎么打电话呢?提前感谢

4

2 回答 2

0

当您提交表单时,将触发提交事件。这将触发提交处理程序,该处理程序将启动 Ajax 请求。

然后浏览器将正常提交表单(因为没有任何东西阻止它)。

浏览器将加载一个新页面,并删除运行 JavaScript 的环境。Ajax 将被取消(请求可能会到达服务器,但响应不会被浏览器处理)。

如果你想在提交表单时做一些事情,然后在helloworld.pl

当您想在不离开页面的情况下与服务器进行通信时,请使用 Ajax。

(您也可以取消表单提交,然后在 Ajax 请求返回时使用 JS 重新提交……但这过于复杂且效率低下)。

于 2012-06-08T08:27:46.710 回答
0

您不是“从 Perl 调用 Ajax”。

您正在使用 Perl 编写 Javascript。

Javascript将从服务器发送,然后在浏览器上执行。

而且我猜浏览器没有找到“contacts.pl”。

问:您是否在浏览器窗口中收到错误消息(如“404”或“500”)?

问:您是否在服务器的错误和/或访问日志中看到任何内容?

于 2012-06-08T08:21:25.490 回答