jQuery "Can only call NodeList.item on instances of nodelist"



我正在使用jQuery编写一个网站,我正在尝试在不离开页面的情况下将表单发布到另一个PHP文件。因此,我找到了一种使用jQuery发布表单的方法。但是,当我将数据发布到PHPpage时,我收到此错误:

只能在节点列表的实例上调用 NodeList.item

我不知道该怎么办。我使用的代码是这样的:

function upload(text){
  $.post("update.php",{
    text:text,
    comment: null,
    parent: null,
    like: null
   }, function(){alert('Thanks');});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea rows="10" cols="50" id="post_text"></textarea>
<button onclick="upload(document.getElementById('post_text'))">Upload</button>

'

问题是因为你向text属性提供了一个 DOM 元素,然后 jQuery 尝试编码该元素,从而导致你看到的错误。若要解决此问题,请改为提供元素的value

另请注意,应尽可能避免使用 on* 事件属性,而使用不显眼的事件处理程序。由于您已经在页面中包含jQuery,因此您可以使用它。试试这个:

$(function() {
  $('#upload').click(function() {
    $.post("update.php", {
      text: $('#post_text').val(),
      comment: null,
      parent: null,
      like: null
    }, function() {
      alert('Thanks');
    });
  });
});
<textarea rows="10" cols="50" id="post_text"></textarea>
<button id="upload">Upload</button>

最新更新