为什么我的POST变量不会在this.form.submit();之后到达?

时间:2016-07-10 17:00:02

标签: javascript php forms

我有一个按下按钮后提交的表单。问题是 - 附加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();"

,它就有效

1 个答案:

答案 0 :(得分:2)

<强> Working fiddle

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

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

如果您可以分离逻辑并使用{​​{1}}事件,那就更好了:

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;

希望这有帮助。