我有一个带有表单的叠加弹出窗口。表单有一个按钮和一个文本框(想象类似于FB Like和Comment框)。与表单的每次交互都会触发通过PHP函数调用的MySQL DB Insert。问题是,在单击按钮或注释(并按下键盘上的Enter键)后,叠加层将消失,主页面将刷新。我不希望这种情况发生,我想把重点放在弹出窗口上。我怎么能这样做?
以下是一些代码:
<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();
};
答案 0 :(得分:1)
当您提交表单作为默认设置而不阻止表单提交和使用ajax时,浏览器将生成一个新请求并将您重新定向到您定义的action
网址。
您要求的是提交表单而不重定向页面。
理想的解决方案是使用ajax。
您可以捕获提交表单事件并阻止默认操作。
然后你必须用自己的代码处理它,在这种情况下是ajax函数。
如何使用ajax发送表单的示例,您可以在这篇文章中看到很好的答案:
link to how make form submit with ajax