为什么我的 POST 变量没有到达 this.form.submit();


Why doesn't my POST variable arrive after this.form.submit();?

我有一个在按下按钮后提交的表单。问题是 - 附加了 this.form.submit() 函数的按钮不会发送 POST 变量......

<form method= "post" action="timestable_submit.php">    
    <input type="hidden" name="b" value="<?php echo $f;?>">
    <input type="hidden" name="c" value="<?php echo $s;?>">
    <input type="submit" name="sub" id="btn" value="<?php echo $d;?>" 
         onclick="this.disabled=true; this.form.submit();">
    <input type="submit" name="sub" id="btn2" value="<?php echo $w1e;?>">         
    <input type="submit" name="sub" id="btn3"  value="<?php echo $w2e; ?>">
</form>

当我从$_POST['sub']分配一个变量时 - 我什么也得不到......

有什么想法吗?如果我没有onclick="this.disable=true; this.form.submit();"线,它可以工作

工作小提琴

将按钮类型更改为button而不是submit,因为您使用this.form.submit()以编程方式提交表单:

<input type="button" name="sub" id="btn" value="<?php echo $d;?>" onclick="this.disabled=true; this.form.submit();">

如果您可以将逻辑分开并使用submit事件,那就更好了:

<input type="submit" name="sub" id="btn" value="<?php echo $d;?>"/>
var form = document.forms[0]; 
form.addEventListener("submit", function(e){
     document.getElementById('btn').disabled=true;
})

注意:.disabled=true;在这里几乎没有影响,因为页面将被重定向到timestable_submit.php

希望这有帮助。