2011-10-05 65 views
1

输入一些文本后,我需要在点击'Enter'(键码== 13)后才能进入下一行。如果您在输入任何文本之前按“输入”,但没有输入任何文本,则此功能有效下面是一些我的脚本JQuery .append文本区域中的换行符返回

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); 
    } 
}; 
+0

由于已经解决了这个问题 – Popeye

回答

5

的,我认为这个问题可能是你有一个textarea,并试图将内容添加到它appendtextarea元素的HTML内容仅在解析页面时相关。之后,所包含的文本被value属性引用。你应该改变它。

this.value += '\n\n'; 

我的猜测是,您的浏览器慷慨:如果您修改HTML被改变了value之前,相应地修改value。最好自己修改value


此外,$("#ContactUsMessage").focus()将始终返回truthy值。如果你想测试元素是否集中,使用is

if ($('#ContactUsMessage').is(':focus')) { 

NB,如果您正在使用一个版本的jQuery 1.6之前,这并不在旧的浏览器。

0

此外,您修复后,本节

sendMessage(); 
blockEnterKeyHandler(e); 

永远不会达到,因为你永远之前与这个if语句返回的东西

if($("#ContactUsMessage").focus()) { 
     return false; 
} else { 
     return true; 
} 
相关问题