2016-09-06 3 views
0

これは私のコードです。Javascript submit()はフォームを提出しません

HTML

<form id="add_new_video" method="post" class="appnitro" style="margin-left:70px;" action="<?php echo base_url()?>videos/save"> 
<input type="text" name="name"> 
<button type="submit" class="dark_text_link" disabled id="submit" href="javascript:void(0);" onclick="return addVideo();">Add New Video</button> 
</form> 

そして、私は送信ボタンをクリックすると、JSが

function addVideo() { 
    //disables the onclick event of the element for 1 seconds 
    document.getElementById('submit').disabled = true; 
    setTimeout(function(){document.getElementById('submit').disabled = false;},1000); 
    document.getElementById('add_new_video').submit(); 
} 

、ボタンが第二のために無効になりますと再表示されますが、フォームが送信されませんされています。私はまだjavascriptの初心者ですので、見落としたことがあるかもしれません。何か案が ?

+1

をターゲットならば、これは当然の事実ではない – mplungjan

+0

「送信」いずれかのフォーム要素の名前またはIDを呼び出すことはありません最後の行のサブミットを除いて、btnsubmitへのjavascriptのsubmit変数。 – mplungjan

答えて

2

いくつか

  1. は、フォーム要素の名前またはIDで「提出」予約語を使用しないでください - それは非表示になりますJavaScriptの
  2. からイベントハンドラを提出無効にしたonSubmitを使用ボタンをクリックしてください。

    <form id="add_new_video" method="post" class="appnitro" style="margin-left:70px;" action="<?php echo base_url()?>videos/save"> 
        <input type="text" name="name"> 
        <button type="submit" id="buttonSub" class="dark_text_link">Add New Video</button> 
    </form> 
    

    window.onload=function() { 
        document.getElementById("add_new_video").onsubmit=function() { 
        document.getElementById('buttonSub').disabled = true; 
        setTimeout(function(){document.getElementById('buttonSub').disabled = false;},1000); 
        }   
    } 
    

    あなたを使用して:あなたはこのようにそれ

をクリックする前にクリックする必要があり、ボタンを無効にするべきではない例

  • ためのボタンにはhrefがありません同じページに提出してから実際にフォームボタンを再度有効にする必要はありません。ときに、ページをリロードボタンが有効になります - あなたは、フォーム他の場所

  • 1

    ボタンをこのタグ要素に置き換えます。

    <input type="submit" class="dark_text_link" disabled id="btnsubmit" href="javascript:void(0);" onclick="return addVideo();"/> 
    
    +0

    はまだ置き換え –

    +0

    動作しない... =私の答えを参照してください –

    関連する問題