簡體   English   中英

javascript:需要按兩次按鈕才能onclick觸發

[英]javascript: need press button twice for onclick to trigger

事先,如果我的代碼丑陋且使用不正確,我向世界的程序員表示歉意。 我這樣做是因為在我工作的地方,其他人都不知道編程。 :)

我創建了一個頁面來下載一些證書。 用戶身份驗證后,他將被重定向到證書下載頁面。 在此之前,當用戶進行身份驗證時,將自動生成證書,但是如果用戶確實要生成證書,我想為其單擊按鈕。

首先,它看起來像這樣:

<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" and isset($_POST['gen_cert']))"進行"cert_generate.php" check by "if($_SERVER['REQUEST_METHOD'] == "POST"的唯一方法。

更新

腳本

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

我的問題是我需要按兩次“生成證書”按鈕以顯示帶有內容的div

我該如何解決?

在按鈕上附加一個雙擊事件

<p ondblclick="downloadCA(id)">Download da CA</p>

這里的id是您想要在網址的fid查詢字符串中使用的id

然后將此js代碼放入腳本中

function downloadCA(id){
   window.location.href = 'download.php?fid=' + id;
}

首次加載頁面時,由於以下情況,您的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'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM