停止刷新提交按钮



如果您的 if 条件变为 false 并显示所有输入了值的输入字段,有没有办法停止刷新提交按钮上的页面?

既然你提到了PHP,那为什么不使用它呢?

我假设你的问题有两个部分,如下所示。

第一部分- 你写道:

显示所有输入了值的输入字段

上面的意思是使用$_SESSION用提交的数据重新填充字段?

第二部分- 你写道:

如果您的 if 条件为假,有没有办法停止刷新提交按钮上的页面

请注意,submit和任何on都是客户端处理范围内的事件。你可以使用jQuery或JS验证。

以下是用于学习测试的两个文件。

发布 php:

<html>
<body>
<form action="action.php" method="POST">
<input type="text" name="feedback" value="" />
<input type="hidden" name="token" value="123456ABCDEF" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
<?
session_start();
$token = '123456ABCDEF';
if(isset($_SESSION)){
if($_SESSION['token'] == $token){
echo "Your feedback:<br />";
foreach($_SESSION as $field=>$value):
echo $field.": ".$value."<br />";
endforeach;     
}else{
echo " Bad token! Cross-Site Request Forgery (CSRF)";
}
}else{
echo "Nothing!";
}

发布到 php:

<?php
session_start();
$_SESSION = $_POST;
$_SESSION['message'] = "Thank you for the feedback!";
header('Location: ' . $_SERVER['HTTP_REFERER']);
?>

希望我让你做对,以上有帮助。

首先,这是停止表单提交的JavaScript代码的副本

现在,当我们解决这个问题时,这里有一个简短的解释。您无法阻止浏览器本身刷新。但是您可以做的是阻止表单提交(进而导致刷新(。这是在 JS 中处理表单验证时的常用解决方案。

您可以查看与住所链接的答案以获取更多详细信息。

您可以使用发布/重定向/获取模式。如果您有错误,请重定向到带有表单的同一页面并显示错误。您不能只是在开机自检期间"停止"表单。

如果您不想"显示"任何重定向,则可以使用 ajax 请求。表单不会"眨眼"。

您还可以使用 javascript 来检查输入元素的字段更改事件。

最新更新