首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery "on click“函数在按"enter”键时被触发

jquery "on click“函数在按"enter”键时被触发
EN

Stack Overflow用户
提问于 2013-10-09 13:41:54
回答 3查看 5.8K关注 0票数 6
代码语言:javascript
运行
复制
jQuery(document).ready(function() {
    jQuery(".multipleDataRow").on("click", "[id^='multiremove_']", function() { 
        //code here to delete
    });
});

我希望避免在按下"enter“键时调用删除函数。

当我集中在其他文本框和键按enter按钮时,单击函数上的这个按钮就会触发。

移除按钮位于具有"multipleDataRow“类的容器中。

remove函数继续在其他字段上按enter键触发。

编辑:来自coment的HTML

代码语言:javascript
运行
复制
<div class="multipleDataRow">
  <label class="">Skills</label>
  <div class="">
    <div id="" class="">
      <div id="multiRow_2_Skillset" class="mBtm-5 span8 mLft-0">
        <input type="text" placeholder=".." id="skill" name="skills[]" value="" class="m-wrap" readonly="readonly">
        <select name="data[tmp_experiences[]]" id="tmp_years_exp_2" class="m-wrap" disabled="disabled">
          <option value="1">1</option>
        </select> Yrs&nbsp;
      </div>
      <div id="spanMultiremove_Skillset_2" class="mBtm-5">
        <button id="multiremove_Skillset_2" skillset_skexp="59" class="btn mini red"> remove </button>
      </div>
    </div>
  </div> <!-- Missing in comment -->
</div> <!-- Missing in comment -->
EN

回答 3

Stack Overflow用户

发布于 2013-10-09 13:43:12

这是所有浏览器的设计。这是一个可访问性特性,因此不应该被篡改。

如果它导致您的站点中的意外行为,请更改HTML标记以绕过它。

票数 4
EN

Stack Overflow用户

发布于 2013-10-09 14:03:29

可以简单地在html代码中编写代码,就像为html标记编写代码一样。

代码语言:javascript
运行
复制
onkeydown="return (event.keyCode!=13);"

这将防止浏览器单击事件。

票数 1
EN

Stack Overflow用户

发布于 2019-11-20 20:10:01

很多人似乎错过了这部分:

当我集中在其他文本框和键按enter按钮时,单击函数上的这个按钮就会触发。

这只是当输入和按钮在表单中时的标准浏览器行为。在提供的片段之外,情况可能是这样,但对我来说确实是这样。

我只是将<form>标记更改为div,因为逻辑都是通过jQuery处理的。但是this answer也有一个有用的金块:

...the默认类型的<button>元素是"submit". --这意味着如果您在包含此按钮的<form>中的任何地方按Enter,它将自动提交。 TLDR:在按钮元素中添加type=“按钮”。

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

https://stackoverflow.com/questions/19273796

复制
相关文章

相似问题

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