在返回时,JQuery .append文本区域中的换行符

Pop*_*eye 1 jquery

输入一些文本后,我需要能够在输入'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)

lon*_*day 5

我认为问题可能是你有一个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版本,这在旧版浏览器中不起作用.