2010-04-14 85 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) ; 
    }); 

就是這樣的。