首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么jquery元素会导致表单提交?

为什么jquery元素会导致表单提交?
EN

Stack Overflow用户
提问于 2010-05-31 15:24:22
回答 4查看 572关注 0票数 1

我想知道为什么在下面的示例中,尝试detach一个元素(li)会导致包含它的formsubmit

html

代码语言:javascript
运行
复制
<form id="frmToDo" name="frmToDo">
  <p id="lineInput">
    ...
    <input type="submit" id="btnSubmit" value="Add" />
  </p>
  <ul id="todolist">
      <!-- added in ajax -->
  </ul>
</form>

JS

代码语言:javascript
运行
复制
$("#frmToDo").submit(function() {
    // this runs after: $("#todolist").detach(...)
});

$("#todolist").delegate("li[id^=task-] button", "click", function() {
    $("#todolist").detach($($(this).parent()).id());
    return false;
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-31 15:58:17

我想您只是想删除单击按钮的li元素。

所以不要用

代码语言:javascript
运行
复制
$("#todolist").delegate("li[id^=task-] button", "click", function() {
    $("#todolist").detach($($(this).parent()).id());
    return false;
});

试着使用

代码语言:javascript
运行
复制
$("#todolist").delegate("li[id^=task-] button", "click", function() {
    $(this).parent().detach();
    return false;
});
票数 1
EN

Stack Overflow用户

发布于 2010-05-31 15:38:36

那不是一个按钮,而是一个输入元素。

代码语言:javascript
运行
复制
$("#todolist").delegate("li[id^=task-] input:submit", "click", function() {
票数 0
EN

Stack Overflow用户

发布于 2010-05-31 15:44:09

我不确定这是否是造成问题的原因,但如果您的目的是分离一个detach元素,则没有正确地使用li函数。detach函数的参数是一个选择器表达式,它过滤正在调用函数的jQuery元素中的匹配元素集。在您的代码中,您将调用detach on $('#todolist'),这意味着如果todolist元素与传递的参数匹配,则需要分离它。

你应该这样做,而不是:

代码语言:javascript
运行
复制
$('#todolist li').detach(); //this will detach all the li elements

我不确定这是否能解释你的表格提交的事实。如果不是:什么事件触发表单的提交事件?也许您使用放置在表单中并触发表单提交的按钮或输入元素?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2944462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档