![](/img/trans.png)
[英]javascript - button needs to be click twice for onclick to trigger
[英]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.