php - 一个表单,多次使用 onclick 事件提交

php - one form, multiple submits with onclick event

我有一个带有两个提交按钮的表单,在后面的代码中我从每个提交中获取了值,但问题是当我在每个提交上添加一个 javascript onclick 事件时,当我尝试检索PHP 中的值我一无所获。我仅在不使用事件时才获取输入提交值。

我没有从这段代码中获取输入提交值:

<input type="submit" id="send1" value="Send1" name="sub1" onclick="validate1();"/>
<input type="submit" id="send2" value="Send2" name="sub2" onclick="return validate2();"/>

这个有效:

<input type="submit" id="send1" value="Send1" name="sub1" />
<input type="submit" id="send2" value="Send2" name="sub2" />

这里有一个快速设置,可以执行您想要的操作 https://jsfiddle.net/d090618g/

你的HTML

 <form id="theform">

    <input type="submit" name="s1" /> 
    <input type="submit" name="s2" />

    <input type="hidden" name="clicked" id="clicked" />

</form>    

<div id="result"></div>

快JQuery

var $form    = $("#theform");
var $clicked = $("#clicked");

$form.find( "input[type='submit']").click( function(){
    $clicked.val( $(this).attr('name') );
});

$form.submit( function( e ){
    e.preventDefault();

    switch( $clicked.val() ){

        case 's1':
            alert( "Do thing 1" );
            return;

        case 's2':
            alert( "Do thing 2" );
            return;
    }

    //post your form to PHP here        

    $("#result").html( $clicked.val() );

});

我找到了解决办法。如果无法发布禁用按钮的值,那么我只是添加一个隐藏字段,其中包含一些标识单击的提交按钮的值。

<input type="hidden" id="my_post_value" name="my_post_value"/>