2010-04-14 120 views
0

我在几个小时前发布了类似的问题,刚才我得到了我应该用AJAX来做这件事的答案。因为我想今天完成这部分网站,所以我不能从基础学习AJAX来做到这一点..这应该不是一件难事,我希望我能够做到这一点,但我是没有足够的技巧......如何在表单提交后停止重定向?

我有一个表单,当你点击提交时,它发布到twitter.com/statuses/update.xml,我需要能够这样做,而不必在那里重定向。

有没有简单的方法来做到这一点,或我需要学习AJAX?

谢谢你的任何答案..!

编辑:

我使用这个提交:

$(function() { 
    $("#skikka").click(function() { 
     var dendar = 
      "http://" + 
      $("#usernam").val() + ":" + $("#passwo").val() + 
      "@twitter.com/statuses/update.xml"; 

     $("#formen").attr("action", dendar); 
     $("#formen").submit(); 
     alert(dendar); 
     return false; 

    }); 
}); 
+0

protip:快速格式化具有正确缩进的html,javascript,css代码,将代码粘贴到http://www.jsfiddle.net并单击顶部的“TidyUp”按钮,然后将格式化的代码粘贴到您的问题中在StackOverflow上。 – Anurag 2010-04-14 23:19:33

回答

0

你可以使用类型= “按钮”,而不是类型= “提交”。

+0

更新我的问题..现在你会明白为什么我不能 – Noor 2010-04-14 18:09:10

0

只需重定向到您的服务器端脚本的页面。你在用什么语言?

+0

我只使用jQuery,JavaScript和简单的HTML。我发布的XML是在twitters服务器上,我无法告诉XML将我重定向回我的网站.. – Noor 2010-04-14 18:08:47

0
// post via ajax 
$.post(dender, $("#formen").serialize()); 

完整的例子:

$(function() { 
$("#skikka").click(function() { 
var dendar = "http://" + $("#usernam").val() + ":" + $("#passwo").val() + "@twitter.com/statuses/update.xml"; 

// post via ajax 
$.post(dender, $("#formen").serialize()); 

alert(dendar); return false; 

}); 
}); 
+0

我会试图找出如何使用它,看起来像JohnFxs回应,阅读API现在! – Noor 2010-04-14 18:12:37

+0

您将需要使用在您自己的服务器上运行的代理服务器......您无法跨域使用XHR,并且我确定您的代码未在twitter.com上运行。 – 2010-04-14 18:15:45

+0

我正在努力理顺整个示例, 到目前为止我已经解释了.serialize函数是在那里从表单中逐一接收输入并发布它们,警报在那里提醒并且返回false是有阻止一切? 我测试了一下,脚本让我警觉,但我不认为这篇文章是通过XML。 – Noor 2010-04-14 18:17:58

2

下面是使用JQuery,这可能是做AJAX不必投入太多的时间学习它的最简单的方法一个简单的例子。尽管听起来你不得不学习其他技术(Jquery),但事实并非如此。大多只需要在页面中添加一个JavaScript包含文件引用。

$.post(dendar , $("#formen").serialize()); 

有关AJAX与Jquery的更多详细信息here

由于您发布回不同的域,您将不得不做一些额外的工作。看看using JSONP against twitter这篇文章。

而且,这里是一个jQuery插件专门针对Twitter的工作:jTwitter

+0

谢谢,现在阅读! – Noor 2010-04-14 18:11:58

0

如果必须这样做的(通过点击事件,并没有仅仅有服务器发送重定向),你可以添加一个onSubmit事件到通过ajax处理实际提交的表单,然后取消事件传播。

Event.observe( 
    $('searchfield').form , 
    'submit' , 
    function(e){ 
    alert('No YOU'); 
    /* secretly submit using ajax and clear form */ ; 
    Event.stop(e) ; 
    }); 

就是这样的。