javascript - How do I add items to a list? using only onsubmit <form> - Stack Overflow

I am creating a to do list using JavascriptHTML. How do I add text input to a list using onsubmit in a

I am creating a to do list using Javascript/HTML. How do I add text input to a list using onsubmit in a <form>. This is what I got so far.

<h1>To-Do List</h1>

<form onsubmit= "return addItem(document.getElementById(list), inputText)"> ` 
    <input type="text" id="inputItem" placeholder="Enter a Task">
    <input type="submit">

</form>

<ul id="list">

</ul>

<script 
// adds Task to list

function addItem(list, inputText) {
    var listItem = document.createElement("li");
    listItem.innerText = "inputText";

    list.appendChild(listItem)

</script>

I am creating a to do list using Javascript/HTML. How do I add text input to a list using onsubmit in a <form>. This is what I got so far.

<h1>To-Do List</h1>

<form onsubmit= "return addItem(document.getElementById(list), inputText)"> ` 
    <input type="text" id="inputItem" placeholder="Enter a Task">
    <input type="submit">

</form>

<ul id="list">

</ul>

<script 
// adds Task to list

function addItem(list, inputText) {
    var listItem = document.createElement("li");
    listItem.innerText = "inputText";

    list.appendChild(listItem)

</script>
Share Improve this question edited Jun 16, 2018 at 16:30 mplungjan 179k28 gold badges182 silver badges240 bronze badges asked Jun 16, 2018 at 16:25 Ahmed OsmanAhmed Osman 371 silver badge9 bronze badges 0
Add a ment  | 

1 Answer 1

Reset to default 4
  1. get the list correctly ('list'), not (list)
  2. Pass the field to the function, not some string - you CAN pass 'inputField' but then you also need var value = document.getElementById(inputField).value and have "return addItem('list', 'inputItem')"
  3. return false or use preventDefault to not submit the form for real

function addItem(list, inputField) { 
  var list = document.getElementById(list);
  var listItem = document.createElement("li");
  listItem.innerText = inputField.value; // passed the field. 
  list.appendChild(listItem);
  return false; // stop submission
}
<h1>To-Do List</h1>

<form onsubmit="return addItem('list', this.inputItem)"> 
  <input type="text" id="inputItem" placeholder="Enter a Task">
  <input type="submit">

</form>

<ul id="list">

</ul>

Unobtrusively:

window.onload = function() {
  document.getElementById('form1').onsubmit = function() {
    var list = document.getElementById(this.getAttribute('data-list')); // only needed if more than one form or list
    var listItem = document.createElement("li");
    var inputItem = this.inputItem;
    listItem.innerText = inputItem.value;
    list.appendChild(listItem);
    inputItem.select();
    inputItem.focus();
    return false; // stop submission
  }
  document.getElementById("inputItem").focus();
}
<h1>To-Do List</h1>

<form id="form1" data-list="list">
  <input type="text" id="inputItem" placeholder="Enter a Task">
  <input type="submit">
</form>
<ul id="list"></ul>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745353311a4623968.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信