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

标签 javascript php html

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

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

初看起来是这样的:

<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/

相关文章:

javascript - Google Script 和 rot13(用宏进行字母替换)

jquery - 在没有php的情况下显示文件夹中的所有图像

javascript - JQuery 在显示前加载 div 中的所有图像

javascript - Visual Studio代码: Run node script on save

javascript - 打包 JavaScript 库后对象消失

php - 用 $test ["index"替换 php4 样式数组 $test[index] 的正则表达式]

php - 隐藏存在于mysql中的元素

php - Doctrine:如何将对象列值标记为脏?

php - 如何在此代码 php 中的单词之间放置 '-'?

html - 我怎样才能使我的马赛克中的图片成为各自 div 的 100%?