2011-01-04 21 views
3

フォーム送信

<form id="basicTerms" method="post" onsubmit="return validateForm()"> 

onsubmit内の関数は以下の通りです:

function validateForm() 
{ 
    return false; 
} 

私は、フォームをテストするためにこれをやった、と私は入力してクリックするか、クリックしたときフォーム送信アクションをトリガーするフォーム上のボタンで、フォームは送信され、次のページに移動します。

は、私は、フォームでこれらのボタンを持っている:私はonsubmitで偽を返すときのフォームにも提出する理由を知りたい

<tr> 
    <td align="left"><button style="background-color:#FF80FF" onclick="javascript:document.getElementById('basicTerms').action='helpFile1.php'; document.getElementById('basicTerms').submit()" tabindex="6">Go Back</button></td> 
    <td align="center"><button style="background-color:#FFC080" onclick="javascript:document.getElementById('basicTerms').action='helpFile2.php'; document.getElementById('basicTerms').submit()" tabindex="4">Lets Go To Step 2</button></td5> 
    <td align="right"><button style="background-color:#00FF00" onclick="printThis()" tabindex="5">Print</button></td> 
</tr> 

私はGoogle ChromeとFireFoxでフォームをテストしましたが、どちらも同じ結果でした。また、localhost WAMP:Apache2.2.11、PHP5.3.0でテストしています。

+2

ボタンタグに 'type =" button "'を追加してみてください。さもなければ私は彼らがボタンを提出することをデフォルトと考えます – Cfreak

+0

@Cfreak:私はそれを選ぶことができるようにこのコメントを回答として投稿してください。 – sikas

+0

が完了しました。私はそれが動作するかもしれないと思ったが、私は100%確信していませんでした: - D – Cfreak

答えて

4

ボタンタグにtype="button"を追加してみてください。さもなければ私は彼らがボタンを提出することをデフォルトと考えます

(答えとして追加されました)

+0

あなたは1日を保存しました:D ...複数のボタンがあり、それぞれ特定のアクションを実行するので、フォームはEnterキーのようには動作しません。この解決策によって、別の問題を解決しました。もう1つの+1(私はそれを作ることができたらいいと思う:D) – sikas

2

フォーム .submitの呼び出し()提出イベント、validateForm()は無視されますをトリガしません。

+0

しかし、私はフォームの任意のテキストフィールド上のEnterボタンを押すだけで提出する! – sikas

+0

ブラウザに依存します(例えば、FireFox&Operaで起こります)[ENTER]を使用すると、最初のsubmit-buttonのクリックがトリガーされ、form.submit()が呼び出されます。 –

+0

Cfreakさんが私の投稿にこの問題を解決したというコメントを投稿しました。 – sikas