6
jQuery(document).ready(function() {
    jQuery(".multipleDataRow").on("click", "[id^='multiremove_']", function() { 
        //code here to delete
    });
});

我想避免在按键“输入”时调用删除功能

当我专注于其他文本框并按下输入按钮时,会触发此点击功能。

删除按钮位于具有类“multipleDataRow”的容器内。

删除功能继续触发在其他字段上的按键输入。

编辑:来自评论的 HTML

<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 -->
4

4 回答 4

6

浏览器将焦点放在按钮上的同时按下Enter键被视为click事件。

正如 Rory 所提到的,这是所有浏览器的设计功能,如果您希望否定此功能,最终用户可能会对最终结果不满意,因为它不会具有所有标准功能。

要否定这一点,您可以检查onkeydown//以检查在单击事件触发之前是否发生了键盘操作,并在按下某个键时停止触发单击事件代码onkeyuponkeypress

IE

var isKeyPress = false;

document.onkeydown = function(event) {
   if (event.keyCode == 13) {
      isKeyPress = true;
   }
}

jQuery(".multipleDataRow").on("click", "[id^='multiremove_']", function() { 
   if (!isKeyPress) {
      //code here to delete
   }
   isKeyPress = false;
});

如果isKeyPress值为true

于 2013-10-09T13:47:24.947 回答
4

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

如果它导致您的网站出现意外行为,请更改您的 HTML 标记以解决它。

于 2013-10-09T13:43:12.627 回答
1

您可以简单地在您的 html 代码中编写代码,例如您的 html 标记

onkeydown="return (event.keyCode!=13);"

这将阻止浏览器的点击事件。

于 2013-10-09T14:03:29.397 回答
0

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

当我专注于其他文本框并按下输入按钮时,会触发此点击功能。

当 input 和 和 按钮位于 form时,这只是标准的浏览器行为。在提供的片段之外,您可能就是这种情况,但对我来说绝对是这种情况。

我只是将<form>标签更改为 div,因为无论如何逻辑都是通过 jQuery 处理的。但是这个答案也有一个有用的提示:

<button>...元素的默认类型是"submit".这意味着如果您在<form>包含此按钮的任何地方按 Enter ,它将自动提交。

TLDR:将 type="button" 添加到您的按钮元素。

于 2019-11-20T20:10:01.460 回答