我有具有3個按鈕的一種形式:Javascript/PHP onSubmit - 哪個按鈕被按下?
<input type='submit' name='mconfirm' value=' Confirm '>
<input type='submit' name='modify' value=' Modify '>
<input type='button' name='cancel' value=' Cancel ' onClick='goVachSub();'></td></tr>
的形式也不會沿的線的東西:
<form name='achievement_modify' method='post' onSubmit='return check_num();' action='".$_SERVER['PHP_SELF']."'>
當任提交按鈕被按下時,check_num()函數被運行的針對某些要求進行一些檢查。但是,當按下修改按鈕時,我不需要執行這些檢查,但由於action ='「。$ _ SERVER ['PHP_SELF']保留了我所有的表單數據,所以我仍然將修改按鈕作爲提交按鈕。
我正在尋找一種方法來修改check_num,這樣如果它可以找出提交時按下的修改,它將不會執行check_num代碼,將其更改爲如下形式:if modifyPressed,do nothing 。else check_num code。或修改修改,使它不是一個仍然能夠保留表單數據的提交按鈕。
實際發生在我的表單中的是它有一堆文本和下拉菜單,那麼用戶會提交它會再次顯示輸入的數據,然後出現三個提到的按鈕(確認,修改,取消)和修改應該將其帶回文本並在數據完好的情況下再次下拉。使用isset在$ _ POST
提交其中有一個名稱屬性按鈕將提交他們的'value'像任何輸入元素,如果他們被點擊的一個,所以'如果(isset($ _ POST ['修改'])){...}'會捕獲這樣的事情。 –
您可以檢查在check_num()函數中按下了哪個按鈕。如果您不想在某些按鈕上提交表單,則必須防止默認操作(=提交表單)。 – djot
@MarcB,OP想要在客戶端而不是服務器上捕獲它。 – epascarello