gpt4 book ai didi

javascript:需要按下按钮两次才能触发onclick

转载 作者:行者123 更新时间:2023-11-28 02:29:07 25 4
gpt4 key购买 nike

如果我的代码丑陋并且不符合正确的模式,我提前向我们世界的程序员道歉。我这样做是因为在我工作的地方没有其他人懂编程。 :)

我创建了一个页面来下载一些证书。用户认证通过后,跳转至证书下载页面。直到这一刻,当用户进行身份验证时,证书将自动生成,但我想放一个按钮供用户点击,如果他们真的想生成证书。

初看起来是这样的:

<div class="form">
<p><strong><span>Usuário: <?= $_SESSION['user'] ?></span></strong></p>
<form action="protected.php" id="my_form" method="post">
<input type="submit" name="gen_cert" value="Gerar certificados" onclick="switcher('gen_cert');this.disabled=true;" />
</form>
<?php if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['gen_cert'])) { ?>
<?php require("cert_generate.php"); ?>
<div id="gen_cert" style="display:none">
<p><a href="download.php?fid=<?= $_SESSION['user'].".p12" ?>" class="button" >Download do certificado pessoal</a></p>
<p><a href="download.php?fid=ca.crt" class="button" >Download da CA</a></p>
</div>
<?php } ?>
</div>

是的,我在 php 中有 html 标签。起初这是我想出 "cert_generate.php" check by "if($_SERVER['REQUEST_METHOD'] == "POST" 的唯一方法和 isset($_POST['gen_cert']))" .

已更新

脚本

   function switcher() {
var x = document.getElementById("generator");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}

我的问题是我需要按两次“生成证书”按钮才能显示 div与内容。

我该如何解决这个问题?

最佳答案

当您第一次加载页面时,由于这种情况,您的 gen_cert div 未加载到 dom 中:if($_SERVER['REQUEST_METHOD'] == "POST"and isset($_POST['gen_cert'])

您可以删除 onclick 事件并在 gen_cert div 上显示:none。

或者,如果您想使用 jquery 显示/隐藏 div,则不需要提交表单。您可以更改提交到按钮的输入类型,删除表单“my_form”并删除条件if($_SERVER['REQUEST_METHOD'] == "POST"and isset($_POST['gen_cert'])

关于javascript:需要按下按钮两次才能触发onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52048903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com