![](/img/trans.png)
[英]Disable button after submit with form that has PHP function. No jQuery
[英]jQuery/JS/PHP - Disable Form and Submit button only after submit
我有一個表單,我想在提交后禁用提交按鈕和表單本身。 表單當前提交給自己,到目前為止我嘗試過的所有解決方案要么禁用表單並提交按鈕,但從未提交表單或提交表單但未禁用按鈕/表單。
PHP:
<?php
if(isset($_POST['send'])){
if(!isset($_SESSION))
{
session_start();
session_regenerate_id();
}
if($_SESSION['user_login_status']==false)
{header('Location:../index.php');}
$Firstname = $_POST["firstname"];
$Lastname = $_POST["lastname"];
$EmpID = $_POST["employeeid"];
$Ticket = $_POST["ticket"];
$Office = $_POST["office"];
$Division = $_POST["division"];
$Device = $_POST["device"];
$Secure = $_POST["secure"];
$Zendesk = $_POST["zendesk"];
$Agent = $_SESSION['user'];
$psPath = 'c:\\Windows\\System32\WindowsPowerShell\v1.0\\powershell.exe -version 5';
$psDIR = "d:\\wamp64\\www\\includes\\";
$psScript = "NewHire.ps1";
$runCMD = $psPath. ' -ExecutionPolicy RemoteSigned '.$psDIR.$psScript.' -Firstname ' .$Firstname. ' -Lastname '.$Lastname. ' -EmpID ' .$EmpID. ' -Ticket ' .$Ticket. ' -Office ' .$Office. ' -Division ' .$Division. ' -Device ' .$Device. ' -Secure ' .$Secure. ' -Zendesk ' .$Zendesk. ' -Agent ' .$Agent;
$createuser = exec($runCMD, $out);
}
?>
修剪下來的 HTML:
<form class="rnd5" method="post" id="frm">
<div class="form-input clear">
<label class="one_third" for="firstname">Firstname <span class="required"><font color="red">*</font></span>
<input type="text" name="firstname" id="firstname" autofocus required>
</label>
</div>
<!-- ################################################################################################ -->
<div class="form-input clear">
<label class="one_third" for="lastname">Lastname <span class="required"><font color="red">*</font></span>
<input type="text" name="lastname" id="lastname" required>
</label>
</div>
<p>
<input type="submit" name="send" value="Submit">
<input type="reset" value="Reset">
</p>
</form>
</div>
<!-- ################################################################################################ -->
<div class="clear"></div>
</div>
</div>
<!-- Footer -->
<?php include('../footer.php'); ?>
</body>
</html>
我嘗試了不同的功能,例如:
$(function () {
$(".send").click(function () {
$(".send").attr("disabled", true);
$('#frm').submit();
});
});
和
$('input:submit').click(function(){
$('input:submit').attr("disabled", true);
});
到目前為止似乎沒有任何工作。 有人有想法嗎?
我可以看到您的代碼存在兩個基本問題。 首先是你的 jQuery 選擇器。
在第一個函數中: .
選擇器(如$(".send")
適用於 class 屬性,而不是 name 屬性。我建議您將輸入更改為class = send
或將選擇器更改為$("[name=send]")
。
在第二個函數中。 我很確定$('input:submit')
不是一個有效的選擇器,我不確定它是什么意思。
退房: http : //www.w3schools.com/jquery/jquery_ref_selectors.asp
第二個問題是您正在提交表單並因此觸發頁面重新加載。 如果您想禁用表單按鈕,我認為這不是所需的行為? 在這種情況下,您應該禁用按鈕的默認行為(有很多方法可以這樣做: 在提交時停止表單刷新頁面)並自己將數據POST 到服務器。
這會給你留下類似以下的東西:
$(function () {
$("[name='send']").click(function () {
$(this).attr("disabled", true);
$("#frm").submit();
});
$("#frm").on("submit",function() {
$.post("http://example.com/your_php_file.php",$(this).serialize());
$(this).preventDefault();
});
});
我無法自己測試這個,因為我沒有太多時間也沒有方便的網絡服務器,但這應該給你一個良好的開端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.