2009-09-02 17 views
0

多くのフィールドと2つの送信ボタンがあるフォームがあります。私は、どのボタンをクリックするかに応じて別のチェックを実行したい。私は以下のコードを書こうとしましたが、それは間違っています(私はJSを知らない)と何も起こりません(構文が間違っていますか?)。どのように2つのボタンのどれがクリックされたのか分かりますか?JavaScriptでフォームに複数の送信ボタンを処理する

document.getElementById('sub1').onclick = checkForm; 
document.getElementById('sub2').onclick = checkForm; 

function checkForm(e) 
{ 
    var e = e || window.event; 
    var o = e.srcElement || e.originalTarget; 

    if(o.id=="sub1") 
     return checkNotNull(); 
    else 
     return checkSamePass(); 
} 

答えて

1

あなたのコードをテストページに入れて、FFとIEの両方でうまく動作します。この問題は、あなたが呼び出している2つの関数checkNotNull()checkSamePass()にある可能性があります。私は彼らが働いていることを確認し、適切に戻っています。

を入力してif/else文になるまでにo.idが正しいことを確認できます。

+0

別の可能性のある障害:このスクリプトをフォームの後ろに置くか、onload/ready機能の内側に置いてください。 – Emmett

+0

おっと、私はidの名前に誤字がありました:x。それが本当にうまくいくと私に言ってくれてありがとう。 –

1

なぜ複雑になるのですか?

function checkForm(button) { 

    formOk = false; 

    if (button = 'first') { 
    //check form 
    if (formOk) myform.submit(); 
    } 

    if (button = 'second') { 
    //check form using other logic 
    if (formOk) myform.submit(); 
    } 

} 


<input type="button" onClick="checkForm('first');" value = "button 1"> 
<input type="button" onClick="checkForm('second');" value = "button 2"> 
関連する問題