jQuery“只能在nodelist的实例上调用NodeList.item”

时间:2018-01-30 20:12:21

标签: javascript php jquery html

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

  

只能在nodelist

的实例上调用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>

`

1 个答案:

答案 0 :(得分:2)

问题是因为你正在为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>