通过jquery追加添加的元素不会在屏幕上保留

时间:2015-07-02 07:07:42

标签: javascript jquery

我正在尝试制作待办事项列表应用程序。我使用append()函数

将列表元素附加到我的任务列表中

HTML

<!DOCTYPE HTML>
<html>
  <title>ToDo</title>

  <head>
    <meta charset="UTF-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script type="text/javascript" src="script.js"></script>

    <h2>TO DO LIST</h2>
  </head>

  <form name = "taskForm">
    Task: <input type = "text" name = "task" >
          <input type = "submit" id = "submit" value = "ADD">
  </form>

  <ul class = "list">
    <li class = "item"></li>
  </ul>

</html>

SCRIPT

$(document).ready(function(){
  $('input#submit').click(function(){
      var newTask = $('input[name=task]').val();
      $('.list').append('<li class = "item"' + newTask + '</li>');
  });
});

当我点击“提交”按钮时,我看到新项目在屏幕上闪烁一秒钟,然后自行消失。

为什么我目睹了这种行为?

3 个答案:

答案 0 :(得分:6)

这是因为您提交的是表单。 提交表单后,页面会自动开始重定向。

保留行为,return false以阻止提交表单

$(document).ready(function(){
  $('input#submit').click(function(){
      var newTask = $('input[name=task]').val();
      $('.list').append('<li class = "item"' + newTask + '</li>');
      return false;
  });
});

请注意,这样您就可以看到更改仍然存在。但是,根据您的需要,如果您希望提交表单,则可能需要重新安排流程,同时保留附加的更改。这可以通过$.ajax()提交来完成。

答案 1 :(得分:1)

按下按钮提交后,页面将再次加载。

变化

<input type = "submit" id = "submit" value = "ADD">

<input type = "button" id = "submit" value = "ADD">

答案 2 :(得分:0)

这是一个可执行的示例,代码中修复了一些错误:

HTML:

<form name = "taskForm">
    Task: <input type = "text" name = "task" >
      <input type = "button" id = "submit" value = "ADD">
</form>

<ul class = "list">
  <li class = "item"></li>
</ul>

JS:

$(document).ready(function(){
  $('input#submit').click(function(){
     var newTask = $($('input[name="task"]')[0]).val();
     console.log(newTask)
     $('.list').append('<li class = "item">' + newTask + '</li>');
  });
});