event.PreventDefault() 在文本区域上按下回车键时不起作用
event.PreventDefault() does not work when enter key is pressed on a textarea
我的代码如下。我有一个由 class“.mytext”定义的文本区域,我想防止用户在单击“输入”时转到新行。但即使在 event.preventDeafult() 之后,回车仍会将用户带到文本区域中的下一行。我在这里遗漏了什么吗?
$(document).off("keyup", ".mytext");
$(document).on("keyup", ".mytext", function(event) {
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="mytext"></textarea>
当你必须键入时已经太晚了,换行符就在那里。
这次为 keypress
插入另一个侦听器并防止此时出现默认 - 当然,同时做任何您想做的关于模拟点击的事情,这意味着换行符不会在那时的文本字符串。
$(document).off("keyup", ".mytext");
$(document).on("keypress", ".mytext", function(event) {
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
$(document).on("keyup", ".mytext", function(event) {
//this should now be redundant
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="mytext"></textarea>
我的代码如下。我有一个由 class“.mytext”定义的文本区域,我想防止用户在单击“输入”时转到新行。但即使在 event.preventDeafult() 之后,回车仍会将用户带到文本区域中的下一行。我在这里遗漏了什么吗?
$(document).off("keyup", ".mytext");
$(document).on("keyup", ".mytext", function(event) {
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="mytext"></textarea>
当你必须键入时已经太晚了,换行符就在那里。
这次为 keypress
插入另一个侦听器并防止此时出现默认 - 当然,同时做任何您想做的关于模拟点击的事情,这意味着换行符不会在那时的文本字符串。
$(document).off("keyup", ".mytext");
$(document).on("keypress", ".mytext", function(event) {
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
$(document).on("keyup", ".mytext", function(event) {
//this should now be redundant
if (event.which == 13) {
event.preventDefault();
$(this).siblings("#send_msg").trigger("click");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea class="mytext"></textarea>