2013-10-18 61 views
0

我有一個覆蓋彈出窗體裏面。該表單有一個按鈕和一個文本框(想象像FB Like和Comment框)。與表單的每次交互都會觸發通過PHP函數調用的MySQL DB插入。問題在於,點擊按鈕或註釋(並按下鍵盤上的回車鍵)後,疊加層消失,主頁面刷新。我不希望發生這種情況,我想把重點放在彈出窗口上。我怎樣才能做到這一點?提交表單後,如何關注重疊彈出窗口?

下面是一些代碼:

<div id="LikeAndComment"> 
    <form name="formLAC" method="post" action=""> 
     <div id="containerLike"> 
      <button type="submit" id="likeit" value="FALSE" onClick="{vote(); keepFocus();}"> 
      <img src="images/implike_BUTTON.jpg" "/> 
      </button> 
     </div> 
     <div id="containerComment"> 
      Commenta: <input type="text" class="input" id="comment" onkeydown="if (event.keyCode == 13) { this.form.submit(); keepfocus(); return false; }"></input> 
     </div> 
    </form> 
</div> 

而這裏的keepFocus函數的代碼:

function keepFocus() { 
    $('.formLAC').focus(); 
    }; 
+1

該頁面將因爲表單提交的被刷新。爲了避免它 - 使用ajax。 – k102

回答

1

當您提交的形式爲默認不阻止表單提交和使用AJAX,瀏覽器將生成一個新請求,並將您重定向到您定義的action網址。 您要求的是提交表單而不重定向頁面。 理想的解決方案是使用ajax。 您可以捕獲提交表單事件並阻止默認操作。 然後你必須用你自己的代碼處理它,在這種情況下,ajax函數。

一個例子如何發送形式使用Ajax,你可以對這個職位有很好的回答,請參閱:
link to how make form submit with ajax

+0

謝謝Dvir和k102,但作爲一名新秀,恐怕我需要更多的幫助,因爲我從來沒有用過Ajax ...... – SteveRoss

+0

對於使用ajax。我建議使用Jquery,因爲它具有跨瀏覽器,更好的語法,乾淨的代碼,並有很多示例和好的API。 我假設你知道什麼是jquery,所以下一步是閱讀'$ .ajax'並查看示例: [如何在JQuery中使用ajax函數](http://api.jquery.com/jQuery .ajax /) – Dvir

+0

我同意Dvir,但爲了快速飲用,您可以調用iframe中彈出框的內容,以便覆蓋在提交表單後不會消失。如果你正在使用任何jQuery模式pluguin ...尋找iframe:true選項或其他東西,然後傳遞內容的URL ..多數民衆贊成它。 –

相關問題