Javascript 未捕获类型错误:对象不是函数,窗体内的按钮
我的jsp页面中有以下代码片段:Javascript 未捕获类型错误:对象不是函数,窗体内的按钮,javascript,forms,exception,button,Javascript,Forms,Exception,Button,我的jsp页面中有以下代码片段: <form name="programarRutasForm" method="post" action="/SGT_Galp_web/programarRutas.do"> <table> <tr> <td> <input type="button" name="insereVuelta" value="Insere Vuelta"
<form name="programarRutasForm" method="post" action="/SGT_Galp_web/programarRutas.do">
<table>
<tr>
<td>
<input type="button" name="insereVuelta" value="Insere Vuelta" onclick="insereVuelta()" id="insereVuelta">
</td>
<td>
<input type="submit" name="criaRuta" value="Cria Ruta" id="criaRuta">
</td>
</tr>
</table>
...
...
当我单击按钮insereVuelta
时,它会抛出一个异常,并显示以下消息:
未捕获类型错误:对象不是函数
但是如果我把按钮放在窗体外面,它就会正常工作。这是怎么发生的?我真的需要把按钮放在表单中提交按钮附近。错误是因为分号的问题。检查脚本中是否有缺少分号的行。您可能会问“那么为什么它在表单之外工作?”自动分号插入在某些情况下失败;您可以在此处了解更多信息:
我觉得这会解决问题。我相信问题源于与按钮本身同名的函数。我也有同样的问题,改变了按钮的名称就解决了。看起来更改按钮的名称也为您修复了它 推测: 我猜当名称相同时,解释器试图调用按钮本身,而不是函数。因为按钮不是函数,所以会抛出错误
不过,我无法解释为什么在表格之外的时候它对你有效。可能当按钮位于表单外部时,解释器不会以相同的方式自动将其连接为可访问对象,或者可能必须通过“父级”访问该按钮。insereVuelta用作输入的名称和id以及函数的名称,尝试更改名称和id或函数名。如果您提供insereVuelta()函数,这样我们就不必猜测错误在哪里,那将非常有帮助。我打赌您很可能是在另一个函数中定义了该函数,因此它在全局范围中不存在。或者您拼写错误。如果这是问题所在,它将永远无法与表单外的按钮一起工作,但感谢帮助我已经解决了问题,但我仍然不知道它是否失败,我所做的唯一一件事是将名称属性更改为“insertVueltaButton”。感谢快速回答:)这解决了我的问题。