2017-02-14 19 views
2

フォームはInternet Explorer(Internet Explorerバージョン:11.713.10586.0)で2回提出されましたが、Chromeでは1回のみ提出されました。ボタンタイプを提出し、また、私は、コードによって提出やっているので、フォームが二回同時に提出なっていた機能のsendActionであるので、<button type = "submit"> IEとChromeで動作が異なる:なぜですか?

ので
function sendAction(anAction){ 
    document.form._action.value = anAction ; 
    document.form.submit(); 
} 

<div id="pageButtons"> 
    <button type="submit" onClick="sendAction('submit')"> Submit </button> 
</div> 

そしてsendAction機能は次のようでした。

だから私はに、ボタンのHTMLの一部を変更:それはIEで正常に働いていた

<div id="pageButtons"> 
     <button type="button" onClick="sendAction('submit')"> Submit </button> 
</div> 

。今私が理解できないのは、type = "submit"というものがIEでフォーム提出を2回行った場合、なぜChromeで正常に動作したのかということです。 chromeでは、ボタンタイプがサブミットされているので2回提出する必要があります。また、 "document.form.submit()"もハードコードしています。

誰でも私に理由を教えてもらえますか?

答えて

0

あなたのボタンはsendAction()関数は、二重のフォーム送信(一度sendAction()機能の一部として、一度通常のHTML <form><button type="submit">行動の一環としてにつながる、実行後に実行を継続している。

あなたの関数でreturn falseを追加してみてください:

function sendAction(anAction){ 
    document.form._action.value = anAction ; 
    document.form.submit(); 
    return false; 
} 

そして、あなたのonClickでreturnを追加します。

<button type="button" onClick="return sendAction('submit');"> Submit </button> 

これによりsendAction()がフォーム送信をトリガーすることができますが、return falseからonClick()に戻ると、<button>の正常な動作が妨げられます。

Chromeは、Sagar Vが上で示しているように、よりよく知るほどスマートです。 IE、あまりスマートではありません:}

+0

Downvoterは説明したいですか? –

+1

私はこれがdownvoteに値するとは思わないのでUpvoted。なぜ誰かがdownvotedのためのアイデア: "IEはスマートではない"事は意見に基づいています。 – palsch

関連する問題