输入一些文本后,我需要能够在输入'Enter'(keycode == 13)后转到下一行.如果您在输入任何文本之前点击"输入"而不是之后,则此方法有效.这是我的一些剧本
var keyPressedOnContactUsMessageHandler = function (e) {
if (e.which == 13 || e.keyCode == 13) {
$(this).append(" \n\n");
if ($("#ContactUsMessage").focus()) {
return false;
} else {
return true;
}
sendMessage();
blockEnterKeyHandler(e);
}
};
Run Code Online (Sandbox Code Playgroud)
我认为问题可能是你有一个textarea并试图用它添加内容append.textarea元素的HTML内容仅在解析页面时才相关.之后,包含的文本由value属性引用.你应该修改它.
this.value += '\n\n';
Run Code Online (Sandbox Code Playgroud)
我的猜测是你的浏览器是慷慨的:如果你在value改变之前修改HTML ,它会value相应地修改它.最好只修改value自己.
此外,$("#ContactUsMessage").focus()将始终返回真值.如果您要测试元素是否已聚焦,请使用is:
if ($('#ContactUsMessage').is(':focus')) {
Run Code Online (Sandbox Code Playgroud)
请注意,如果您在1.6之前使用的是jQuery版本,这在旧版浏览器中不起作用.