【问题标题】:Failed to execute 'function' on 'Document': 1 argument required, but only 0 present?无法在“文档”上执行“功能”:需要 1 个参数,但只有 0 个存在?
【发布时间】:2018-02-16 05:21:26
【问题描述】:

如果我的函数没有接受任何参数,为什么我会收到此错误无法在“文档”上执行“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)
}
})
}

【问题讨论】:

  • createComment 已存在于document。当将函数调用放入onsubmit 处理程序时,它实际上会调用document.createComment。要解决此问题,请将您的函数重命名为其他名称,或使用标准 addEventListener
  • 可能重复Uncaught TypeError: lang is not a function — 用createComment 替换lang,这将是完全相同的问题(同样,animate,如果您遵循重复链)。
  • 不是每次更新都删掉吗?
  • 擦除了什么?
  • 我注意到你的三个问题都是同一个问题。

标签: javascript


【解决方案1】:

我遇到了类似的问题,在我的 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

我没有意识到的是,我选择的函数名称与名为:

document.createElement() 

这样使用:

document.createElement("div")

所以大概是我的 HTML 试图调用这个原生 JS 方法,而不是我自己的

发现这一点后,我简单地重命名了我的函数,一切又恢复正常了:

 <button onclick ="createEl()"> </button>

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2019-03-24
    • 2016-12-11
    相关资源
    最近更新 更多