2016-07-20 20 views
0

私はこのコードを持っています。フォームを複数回送信するのを止めるためにいくつかのことを試みましたが、何も機能しませんでした。どんな提案も大歓迎です!2回以上フォームを送信しないでください

document.getElementById("submit-order-button").addEventListener('click', function(event) { 
    var formValid = Object.keys(that.state).map(function(elem){ 
    if(that.state[elem] === "") { 
     return false 
    } else { 
     return true 
    } 
    }) 

    var emailValid; 
    if (that.state.email.indexOf("@") > -1 && that.state.email.indexOf(".") > -1) { 
    emailValid = true; 
    } else { 
    emailValid = false; 
    } 

    if (!emailValid || formValid.indexOf(false) > -1) { 
    $("#validation-text").show() 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
    } else { 

    } 
}, false); 

答えて

0
// Stop browser default behaviour 
event.preventDefault(); 

復帰が不要です。たとえば、カウントを送信する場合(および送信する前にチェックする(!))には、フラグ(1/0、true/false)を使用します。

+0

私は残念なことに幸運にもそれを試みました。私が間違っている場合は私を訂正しますが、私の理解は、event.preventDefault()は、 'submit'イベントの場合はフォームを停止し、コードは 'click'イベントの場合のみです。 – Ruth

+0

最近、 FFとChromiumではまた、ハンドラの中で次のように定義することもできます: 'document.forms [0] .onsubmit = function(){return false; }; ' (ここでは' this'は不適切です) フォーム内のボタンのデフォルト動作を防ぐために、 'type =" button "' 'をボタンタグに追加することもできます。 – xqoo0ooq

関連する問題