jQuery(document).ready(function() {
jQuery(".multipleDataRow").on("click", "[id^='multiremove_']", function() {
//code here to delete
});
});
我想避免在按下“enter”键时调用删除函数
当我关注其他文本框并按下 Enter 按钮时,此点击功能就会触发。
删除按钮位于具有“multipleDataRow”类的容器内。
在其他字段上按 Enter 键时,删除功能会继续触发。
编辑:来自评论的 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
</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 -->
最佳答案
当焦点集中在按钮上时按 Enter 键,浏览器将按照与 click
事件相同的方式处理该事件。
正如 Rory 所提到的,这是所有浏览器设计的一个功能,如果您希望否定此功能,最终用户可能会对最终结果不满意,因为它不会具有所有标准功能。
要否定这一点,您可以检查 onkeydown
/onkeyup
/onkeypress
来检查键盘操作是否在单击事件之前发生如果按下某个键,则触发并停止单击事件代码触发。
即
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
,这应该会停止运行点击事件代码
关于jquery - jquery "on click"函数在按键 "enter"时被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19273796/