Textarea ctrl+enter实现换行,用enter实现表单提交

来源:互联网 发布:微官网制作哪个软件好 编辑:程序博客网 时间:2024/05/21 09:20


1. 实现换行的想法是,监听Enter按键, 找到光标当前所在位置,在当前位置上插入一个“\r\n”,

2. 实现提交:监听Ctrl + enter键,找到父级form,提交Form


 $('#inputmessage').keypress(function (ev) {

// 监听按键
        var keycode = (ev.keyCode ? ev.keyCode : ev.which);
        if (ev.ctrlKey && (keycode == 13 || keycode == 10)) {
            insertNewlineToChat($(this));
        }
        else if (!ev.ctrlKey && (keycode == 13 || keycode == 10)) {
            $(this).closest("form").submit();
            return false;
        }

        return true;
    });


function insertNewlineToChat(element) {
    var myValue = "\r\n";
    var $t = $(element)[0];
    if (document.selection) {
        $t.focus();
        var sel = document.selection.createRange();
        sel.text = myValue;
        $t.focus();
        sel.moveStart('character', -l);
    } else if ($t.selectionStart || $t.selectionStart == '0') {
        var startPos = $t.selectionStart;
        var endPos = $t.selectionEnd;
        var scrollTop = $t.scrollTop;
        $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
        $t.focus();
        $t.selectionStart = startPos + 1;   
        $t.selectionEnd = startPos + 1;
        $t.scrollTop = scrollTop;
    } else {
        $t.value += myValue;
        $t.focus();
    }
}


insertNewlineToChat函数参考了 水墨寒 的文本框插入表情控件:  http://www.jq-school.com/Detail.aspx?id=153


0 0