无法在'Document'上执行'function':需要1个参数,但只有0存在?

时间:2017-09-07 12:52:10

标签: javascript

为什么我收到此错误无法在'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)
}
})
}

1 个答案:

答案 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>