2010-08-27 101 views
2

的目的是要表明一種形式,將更新頁面上的分度,結果jQuery插件衝突 - 請幫助

  1. 負荷這個[page]
  2. 點擊linkto形式展現
  3. 提交表格

提交時,如果窗體已隱藏,結果不會顯示在div中。

  • 將在下面回答問題建議的代碼後,我將展示形式,它被提交,但數據不會在div出現我給給ajaxForm爲目標

    [Here]是的這確實顯示的結果在div

感謝

回答

1

當您提交表單,請求被髮送到服務器,並獲得一個HTTP錯誤:405 Method Not Allowed

它看起來像來自您的服務器的配置。 http://www.checkupdown.com/status/E405.html

編輯:爲你的代碼適用於您的例子在facy.html頁,我認爲它並沒有真正來自服務器。這兩個示例的區別在於動作的形式。

  • fancy.html:您加載一個PHP文件
  • fancy3.html:加載HTML文件

你嘗試打電話給你謝謝頁 「thanks.php」 和相應地修改表單的動作。我想你的服務器可能不允許在HTML頁面上發佈POST請求。

+0

注意:我使用Firebug擴展來查看此錯誤。我建議你用Firefox和這個擴展名嘗試一下:http://getfirebug.com/ – Ben 2010-09-06 09:08:26

+0

我其次,看起來像本已經解決了這個問題。 – dpq 2010-09-06 10:37:33

+0

謝謝。那樣做了。出於某種原因,我的「DUMP.php」在這裏不起作用。 – mplungjan 2010-09-11 06:56:56

0

在不工作,如果你綁定給ajaxForm當顯示形式的例子相同的形式它應該可以正常工作。

// you may want to use better/faster selector then 'a' but in this example it 
// will work 
$('a').click(function() { 
    $('#feditform').fadeIn('slow').ajaxForm(options); 
    return false; 
}); 

添加上面而不是jQuery.facybox({ div: '#formDiv' }); return false它應該按預期工作。

+0

聽起來不錯。然而,當我在http://plungjan.name/eetest/facy1.html上實現它時似乎不起作用 - 它也會成爲一個問題,它在每次點擊時都會執行ajaxForm?謝謝! – mplungjan 2010-08-31 07:43:11

0

至於我可以看到你現在有:

<div id="formDiv" style="display:none"> some other code here </div>

,但你還是叫$('#feditform').fadeIn('slow').ajaxForm(options);

,據我所看到和了解的jQuery,這將永遠不會出現的,因爲周圍div是display:none。我建議做三兩件事:

  • 先做使用hide()show(),這將避免一些麻煩動畫簡化代碼。如果這可行,您可以繼續並再次介紹動畫版本。
  • 只需通過jQuery隱藏(document).ready函數中的內容,以便您可以依賴這些函數。我們對'混合'方法(硬編碼和通過jQuery)有不良的體驗,特別是關於顯示和隱藏情況。
  • 最後但並非最不重要:一些插件和環境確實使用$。在這些情況下,我們傾向於使用關鍵字jQuery,因爲這將始終保持範圍。

希望這會有所幫助。

+0

謝謝,我在表格中淡出,而不是表格div。顯示窗體併發生一些AJAXING,但目標div不會更新結果。看到我修正的問題。謝謝 – mplungjan 2010-09-01 06:51:22

+0

查看文檔可能有助於將'var options'部分直接放在'(document).ready'後面並作爲第一部分。如果你不這樣做,可能是jQuery中的DOM鏈被破壞了。沒有測試過它。只是一個猜測。 – mic 2010-09-01 20:56:14

+0

不 - 我從沒有預料到警報顯示。但我猜目標div可能超出範圍 - http://www.plungjan.name/eetest/facy3.html實現您的建議 – mplungjan 2010-09-02 06:27:54

0

我不認爲你的問題是jQuery/Javascript相關。

一旦表單被提交(通過PHP,我假設?),你需要回顯一個消息,這將作爲成功回調的一部分傳遞。即

echo '<strong>' . $_POST['message'] . '</strong>'; 

小心發佈你的服務器端代碼?

+0

對不起,我刪除了第一個有效的例子。它在這裏:http://plungjan.name/eetest/facy.html – mplungjan 2010-09-01 07:27:54

+0

我現在只是返回謝謝你,也不顯示 – mplungjan 2010-09-05 06:31:26

0

這些數據確實在您發佈的鏈接中顯示。

如果你認爲這是對插件衝突嘗試jquery.noConflict() http://api.jquery.com/jQuery.noConflict/

雖然不是最完美的解決方案有關。它可以輕鬆解決您與插件存在的任何衝突。

+0

如果你點擊鏈接並從http://plungjan.name/提交表格eetest/facy2.html你在頁面中的div內獲得了轉儲形式? – mplungjan 2010-09-03 08:22:24

1

我不確定,但可能是你的初始形式與錯誤的ID?

$('#formDiv').fadeIn('slow').ajaxForm(options) 

當表單ID是feditform。而在正確的示例位於http://plungjan.name/eetest/facy.html$('#feditform').ajaxForm(options);

+0

DOH。謝謝現在發生。但它並沒有顯示任何內容。從動作返回時目標div是空白的。 我已將表單操作更改爲僅加載文本「謝謝」,但未顯示 – mplungjan 2010-09-04 06:11:29