2011-07-15 29 views
-2

ここに問題があります:私は3つのボタンといくつかの隠れた入力フィールドを持つ単純なフォームを持っています。押されたボタン(異なる名前= ""の値)に応じて、アクションは何か異なる動作をします。
私は今、これを行うことによって、このフォームに確認のダイアログボックスを追加しようとしています:htmlフォーム提出 - javascriptは入力ボタンを提出しません

<form method="POST" action="/action" onsubmit="return confirmFormSubmit(this);"> 
    <input type="submit" name="one" value="This"> 
    <input type="submit" name="two" value="That"> 
    <input type="submit" name="three" value="Something else"> 
</form> 

<script type="text/javascript"> 
function confirmFormSubmit(obj) 
{ 
    window.event.preventDefault(); 
    jConfirm('Are you sure you want to do this?', 'Awaiting confirmation', function(r) { 
     if (r == true) { 
      obj.form.submit(); 
     } else { 
      return false; 
     } 
    }); 
} 
</script> 

I [OK]をクリックすると、アクションが発生しますが、入力ボタンが提出されていません。
'document.location = obj.form.action;'を実行しています。これはPOSTパラメータを送信しないため、オプションではありません。

入力フィールドを送信するだけで、アクションを呼び出すことはできません。

+0

作業する必要があり、実際にやるの? –

+0

エンティティのステータスを変更または削除します。とにかくそれはどういう意味ですか?それはすでにサーバー側です。 – jurchiks

+0

@Samuele - なぜ、それはもちろん、アクションを実行します。 – aroth

答えて

0

私はonsumitメソッドがフォーム宣言のアクションをオーバーライドするためだと思います。 私は実際にフォームのボタンを変更し、必要なテストを実行し、正しいアクションに値を送信するjavascriptメソッドにリンクされたボタンにします。

+0

テストはありません。POST変数を送信する必要があります。送信ボタン以外は同じです... – jurchiks

-1
<form method="POST" action="/action"> 
    <a href="javascript: confirmFormSubmit(this)"> 
     <input type="button" name="three" value="Something else"> 
    </a> 
</form> 

このようなものは、あなたの「/アクション」アクション(このために申し訳ありません:P)は何をん

+0

-1なぜ、実際には?あなたはsubmit/onsubmitという書式を使用しませんが、あなたのためにsubmitを処理するjavascriptメソッドを呼び出します。それは実際に働いています。だから、何かの前にそれを試してみてください。 –

+0

申し訳ありません2年後に書いていますが、誰かがそれをやる理由を見ることはできますが、私はあなたの答えを落とした人ではありませんでした。 – jurchiks

関連する問題