問題
下記のコードで、「合格」ボタンをクリックすると、Uncaught TypeError: accept is not a function at HTMLInputElement.onclick というエラーが発生します。
<div class="btn_Div" id="operations-btn">
<input type="button" value="合格"
class="btn-accept" id="accept-btn" οnclick="accept()" />
<input type="button" value="却下"
class="btn-reject" id="reject-btn" οnclick="reject()" />
<input type="button" value="審査に提出"
class="btn-add" id="submit-btn" οnclick="accept()" />
</div>
<script>
function accept() {
...
}
</script>
答え
ネットで検索してみたところ、このエラーの原因は、JS関数と同じ名前のnameまたはidを持つinput要素がある場合、正常に呼び出せなくなるためです。
解決策は、要素のid/nameを変更するか、関数名を変更することです。
関数名を acceptApproval() に変更したら、問題が解決しました。
コメント