我的代码中的这一步几乎所有东西都可以正常工作,但是,代码可以工作,但由于某种原因仍然显示我似乎无法修复的控制台问题。索引.ejs<%- include("partials/header") %><div class="container my-5"> <div class="row justify-content-center"> <div class="card bg-dark" style="width: 18rem;"> <div class="card-header text-white"> To-Do List <a href="#collapseToDo" data-toggle="collapse"><i class="fas fa-plus ml-auto"></i></a> </div> <ul class="list-group list-group-flush"> <div class="collapse" id="collapseToDo"> <form class="" action="/" method="POST"> <input class="list-group-item bg-light rounded-0" name="todo" type="text" placeholder="Enter To-Do"/> </form> </div> <% todos.forEach(function(todos){ %> <li class="list-group-item"><%= todos.title %> <form action="/<%= todos._id %>?_method=DELETE" method="POST"><button><i class="far fa-trash-alt"></i></button></form></li> <% }) %> </ul> </div> </div></div><%- include("partials/footer") %>dom.js$("ul").on("click", "button", function(event){ $(this).parent().parent().fadeOut(500, function(){ $(this).remove(); }); event.stopPropagation();}); $("input[type='text']").keypress(function(event){ if(event.which === 13){ var todoText = $(this).val(); $(this).form.submit(); $(".list-group").append("<li class='list-group-item'>" + todoText + "<span><i class='far fa-trash-alt'></i></span></li>"); $(this).val(""); } }); $(".list-group").on("click", "li", function(){ $(this).toggleClass("completed"); });我似乎无法$(this).form.submit()在没有任何错误的情况下开始工作。我收到以下错误:无法读取未定义的属性“提交”奇怪的是。表单确实最终成功提交,但是由于错误,事件侦听器中的下一行没有通过。谁能帮帮我?
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
有了这条线:
$(this).form.submit();
this
指发生的input
地方keypress
。input
元素没有form
属性,因此没有方法undefined
,因此您的错误。undefined
submit
Cannot read property 'submit' of undefined
现在,表单最终提交(或至少开始提交)的原因是因为您没有submit
按钮,在这种情况下form
按 ENTER(字符代码 13)会导致 a submit
。
将行更改为:
$(this).closest("form").submit();
以便找到最近的form
祖先元素,input
然后submit
调用它。或者,完全删除该行并让按 ENTER 键启动提交过程,就像它本身所做的那样。
仅供参考:该keypress
事件已被弃用。改为使用keydown
。
添加回答
举报
0/150
提交
取消