浏览器
Google Chtome 69
html
<textarea id="message" name="message">
// input some messsage
</textarea>
js(jQuery)
$(function () {
$("#message").on("keydown keyup keypress change", function () {
//this part runs correctly
})
$('#message').on('keydown', function (e) {
if ((e.wich && e.wich === 13) || (e.keyCode && e.keyCode === 13)) {
var $textarea = $(this);
var sentence = $textarea.val();
var position = $textarea.selectionStart;
var length = sentence.length;
var before = sentence.substr(0, position);
var after = sentence.substr(position, length);
sentence = before + "\n" + after;
}
});
});
当我在#message文本区域中输入内容并按该区域中的Enter键时,什么也不会发生。根据Chrome开发者工具,selectionStart方法似乎返回Undefined
。
在此表单页面中,Enter键已被禁用,以避免错误提交数据。
js
function fnCancelEnter()
{
if (gCssUA.indexOf("WIN") != -1 && gCssUA.indexOf("MSIE") != -1) {
if (window.event.keyCode == 13)
{
return false;
}
}
return true;
}
但是,在此文本区域中,我想允许用户通过按Enter键添加一个换行符。
很抱歉,但是我对jQuery和javascript的了解不多。请告诉我该怎么做。
答案 0 :(得分:0)
请用$ textarea.get(0).selectionStart替换“ $ textarea.selectionStart”。然后重试。
致谢