JQuery load()函数不断清除用户输入

时间:2017-07-13 12:44:11

标签: jquery html forms

我有一个带有load()函数的JQuery,每秒都有效。但是,当我在搜索框中输入用户输入时,它将无法正常工作。

$(document).ready(function() {
function loadData() {
$('body').load('index.php', function() {
  if(window.reloadData != 0)
    window.clearTimeout(window.reloadData);
    window.reloadData = window.setTimeout(loadData, 1500)
}).fadeIn("slow");
}

window.reloadData = 0;
loadData();

});

<form action="search.php" method="get"><input type="text" placeholder="Search for movie"></form>

1 个答案:

答案 0 :(得分:1)

如果您真的不想替换整个正文并保存表单状态,只需删除表单并将其放回原位:

<!--Index.php-->
<!-- Set a identifier for it -->
<form id="searchForm" <!--more attributes...--> ></form>

剧本:

///main.js

(($) => {
   const loadData = () => {
      //"take" the form 
      let $form = $('#searchForm').detach();

      $('body').load('index.php', () => {

          if(window.reloadData != 0)
             window.clearTimeout(window.reloadData);

          window.reloadData = window.setTimeout(loadData, 1500);

          //replace the default form with the saved form
          $('#searchForm').replaceWith($form);

        }).fadeIn("slow");
      }
   $(document).ready(() => {

      window.reloadData = 0;
      loadData();

   });
})(jQuery)

PS:建议更换只显示搜索结果的div,因为希望每次都保存页面中每一件事的状态:)