为什么我收到此错误无法在'Document'上执行'createComment':如果我的函数没有接受任何参数,那么需要1个参数,但只有0??
<form onsubmit='createComment()' method='POST'>
var createComment = function () {
var author = $('#addCommentAuthor').val()
var email = $('#addCommentEmail').val()
var content = $('#addCommentContent').val()
var date = $('#addCommentDate').val()
$.ajax({
url: "controller.php",
type: 'POST',
data: {
commentType: commentType,
questionId: currentQuestionID,
add_comment_author: author,
add_comment_email: email,
add_comment_content: content,
add_comment_date: date
},
success: function(data) {
console.log(data)
}
})
}
答案 0 :(得分:2)
我遇到了类似的问题,在我的 HTML 中,我给了一个按钮一个 onclick 属性,而属性值是我在 JavaScript 文件中定义的一个函数。
我已将函数命名为:createElement()
<button onclick ="createElement()"> </button>
但是当我点击它时,我的函数没有执行,而是收到错误消息:
index.html:28 Uncaught TypeError:
Failed to execute 'createElement' on 'Document':
1 argument required, but only 0 present.
at HTMLButtonElement.onclick
我没有意识到的是,我选择的函数名称与名为以下内容的预先存在的 JS 方法发生冲突:
document.createElement()
用法如下:
document.createElement("div")
所以大概是我的 HTML 试图调用这个原生的 JS 方法,而不是我自己的
发现这一点后,我简单地重命名了我的函数,一切又正常了:
<button onclick ="createEl()"> </button>