如果您的 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 来检查输入元素的字段更改事件。