2017-08-08 63 views
1

在我的代码中,addDvcPeople()的onclick函数可以正常工作,不需要任何形式。 但是一旦添加表单,addDvcPeople()的onclick函数将失败。 这里是没有形式的代码工作正常:按钮的onclick函数不能在form.javascript中工作jquery

<div class="dvcOnShlv" id="dvcOnShlv"> 
<!--<form action="modify_idc_addDVC.php?act=add&table=IDC" method="POST">--> 
    <table border="1px" cellspacing="0" id="staTable"> 
    <tr> 
    <h2 align="center">IDCtable</h2> 
    </tr> 
    <tr> 
    <td style="width:15%" id="addDvcWorker">engineer<br /><input type="button" id="addDvcPeople" onclick="addDvcPeople()" value="addpeople"></td> 
    </tr> 
</table> 
<!--</form>--> 
</div> 

我addDvcPeople()的代码是:

<script> 
function addDvcPeople() 
{ 
    alert("test"); 
} 
</script> 

一旦 “形式” 一句加入,功能addDvcPeople()什么也没做。 我不知道为什么。谁能帮助我?

+0

@guradio,没有窗体,测试对话框会出现,但在形式上,没有什么。 – stack

回答

1

,你所拥有的主要问题是,你给你的按钮相同的ID为你的函数名。您需要确保它们是不同的,或者你的函数总是通过来作为undefined

function addDvcPeople() { 
 
    alert("test"); 
 
}
<form> 
 
    <input type="button" id="addDvcPeople" onclick="addDvcPeople()" value="Button"> 
 
</form>

这里这用不同的ID工作:

function addDvcPeople() { 
 
    alert("test"); 
 
}
<form> 
 
    <input type="button" id="addDvcPeopleID" onclick="addDvcPeople()" value="Button"> 
 
</form>

你会遇到的第二个问题计数器是表单提交有实际提交表单,即使没有submit输入,也就是说,当点击按钮后,你的表单将消失默认行为:

function addDvcPeople() { 
 
    alert("test"); 
 
}
<form> 
 
    <button onclick="addDvcPeople()">Button</button> 
 
</form>

要解决这一点,你需要通过event覆盖默认的形式提交:

function addDvcPeople(event) { 
 
    event.preventDefault(); 
 
    alert("test"); 
 
}
<form> 
 
    <button onclick="addDvcPeople(event)">Button</button> 
 
</form>

请注意,在上面的示例中,页面不刷新,并且出现警报。

希望这会有所帮助! :)

+0

哇,你是专家。非常感谢你!! – stack

1

你就是不设置重复的ID和函数名

+0

这是正确的 – Chase

+0

@Tran Audi,addDvcWorker和addDvcPeople不同,重复的函数名是关键。我改变id =“addDvcPeople”onclick =“addDvcPeoplef()”,然后它工作正常。 Thankyou !! – stack

+0

欢迎您:) –