我有一个表格,其中电子邮件是可选的。要控制有一个复选框。如果未选中该复选框,则电子邮件文本框将被禁用,因此不会在提交时发布。但是,在下一页上,如果我有如下所示的代码,并且禁用了电子邮件文本框,则会出现错误。
if (isset($_POST['submit']))
{
$_SESSION["email"] = $_REQUEST['YourEMail'];
....
}
为了解决这个问题,我在提交之前以编程方式启用了禁用的电子邮件文本框,并将其值设置为空字符串。其代码如下所示。
document.getElementById('YourEMail').disabled = false
document.getElementById('YourEMail').value = ''
但是,仍然存在一个恼人的问题,那就是,如果用户返回到原始页面,电子邮件文本框就会被启用,因为我在提交表单之前启用它时出现了问题。但是,我希望在这种情况下禁用它。我怎样才能实现这个目标?或者,在下一页中,我如何看到电子邮件箱被禁用,因此甚至不尝试读取 $_REQUEST['YourEmail']
?
最佳答案
如果字段“#YourEMail”是可选的,您可以检查 PHP 中是否存在。无需使用 JS 启用/禁用该字段。
if (isset($_POST['submit']))
{
if (isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])){
$_SESSION["email"] = $_REQUEST['YourEMail'];
}
}
关于javascript - 如何查看表单元素是否未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666988/