0

我有一个覆盖弹出窗口,里面有一个表单。该表单有一个按钮和一个文本框(想象一下类似 FB Like 和 Comment 框的东西)。与表单的每次交互都会触发通过 PHP 函数调用的 MySQL DB Insert。问题是在单击按钮或评论后(并按键盘上的回车键),覆盖消失并刷新主页。我不希望这种情况发生,我想将注意力集中在弹出窗口上。我怎样才能做到这一点?

这是一些代码:

    <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();
    };
4

1 回答 1

1

当您默认提交表单而不阻止表单提交并使用 ajax 时,浏览器将生成一个新请求并将您重定向到action您定义的 url。您要求的是提交表单而不重定向页面。理想的解决方案是使用 ajax。您可以捕获提交表单事件并阻止默认操作。那么你必须用你自己的代码来处理它,在这种情况下是 ajax 函数。

一个如何使用 ajax 发送表单的示例,您可以在这篇文章中看到很好的答案:
link to how make form submit with ajax

于 2013-10-18T08:50:42.947 回答