2013-10-18 60 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 ..多数民众赞成它。 –

相关问题