2016-09-06 161 views
0

這是我的代碼。Javascript提交()不提交表格

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

,一定不要調用任何形式的元素名稱或ID =「提交」 – mplungjan

+0

見我的回答當然這是不正確的...... – mplungjan

回答

2

幾件事情

  1. 不要使用保留字表單元素的名稱或標識「提交」 - 它會隱藏JavaScript的
  2. 提交事件處理程序使用的onsubmit禁用按鈕,而不是使用奇怪的內聯處理程序。另外,對例如
  3. 按鈕沒有HREF你不應該禁用,你需要點擊它

像在此之前點擊一個按鈕:使用

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

<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> 

自從您提交到同一頁面後,實際上並不需要再次啓用表單按鈕。該按鈕將被激活頁面重新加載的時候 - 如果你的目標的形式在其他地方

1

用此標記元素替換按鈕。

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

仍無法正常工作 –

+0

更換將javascript中的變量提交給除最後一行提交之外的btnsubmit。 –