提交后导航至表单

时间:2019-04-03 11:38:21

标签: php html html5

这似乎是一个简单的问题,但我一直坚持下去。希望任何人都可以帮助我

我正在使用PHP进行服务器端表单验证。就验证而言,一切都按预期进行。但是,如果输入中显示错误或提交表单,浏览器将导航到页面顶部。我如何防止这种行为?单击提交按钮后,我需要它所在的页面

Quill.register({
'formats/emoji': Emoji.EmojiBlot,
'modules/short_name_emoji': Emoji.ShortNameEmoji,
'modules/toolbar_emoji': Emoji.ToolbarEmoji,
'modules/textarea_emoji': Emoji.TextAreaEmoji}, true); 

1 个答案:

答案 0 :(得分:2)

如果我理解您的问题,那么您只是从HTML和PHP中问了很多。请记住,提交表单后,浏览器会离开当前页面并加载表单操作页面(在您的情况下,它会根据指令action="<?php $_SERVER['PHP_SELF']; ?>"重新加载当前页面。

因此,如果没有表单提交正在进行,您将如何将页面精确定位在所需位置?在这种情况下,您将采用这种方式。因此,如注释中所建议,您可以修改操作指令:action="<?php $_SERVER['PHP_SELF']; ?>#id_of_form_container"。例如,如果您的表单是这样的div结构:

<div id="contact_form_div">
    <form method="POST" action="<?php $_SERVER['PHP_SELF']; ?>">

那么您的操作代码应为:

action="<?php $_SERVER['PHP_SELF']; ?>#contact_form_div"

或者,您可以在表单提交过程中在javascript方面进行一些基本的表单有效性测试。例如,如果必填字段为空白,则可以return false;-这将停止提交过程并将控制权返回给用户。

Here is an example的基本javascript字段验证的外观。并且here is an example使用javascript / jQuery中断表单提交过程以执行该验证,并在验证失败时(通过return false;)将控制权返回给用户。

参考文献:

MDN article on form validation - note the SmashingMagazine links at bottom

TutorialsPoint - more concise example of the same

Video tutorial of same (30 min)