2016-09-06 114 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。 –