javascript - 提交表单后如何将注意力集中在叠加弹出窗口上?

标签 javascript php jquery html mysql

我有一个覆盖弹出窗口,里面有一个表单。该表单有一个按钮和一个文本框(想象一下类似 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();
    };

最佳答案

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

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

关于javascript - 提交表单后如何将注意力集中在叠加弹出窗口上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445277/

相关文章:

javascript - 套接字.io 1.x : use WebSockets only?

javascript - 如何在 Javascript 中将输出转换为矩阵

c# - SignalR 不适用于自定义序列化器

php - Laravel Request::is() - 有更好的方法吗?

javascript - 如何将文字数组转换为 json

javascript - 在 Angular js 1.6.2 中使用自定义过滤器

php - 扔掉整个数组,但第一项

php - 在php中组织显示的mysql数据

javascript - 自动为图像添加灯箱效果

javascript - jQuery - Mouseenter/Mouseleave 父/子问题