jQuery:selectionStart返回未定义

时间:2018-09-21 00:53:12

标签: javascript jquery

情况

浏览器

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的了解不多。请告诉我该怎么做。

1 个答案:

答案 0 :(得分:0)

请用$ textarea.get(0).selectionStart替换“ $ textarea.selectionStart”。然后重试。

致谢

相关问题