3

我有这个简单的脚本

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
    $(function(){
         $("#message").keypress(function(e){
            var code = (e.keyCode ? e.keyCode : e.which);
            if (code == 13){
                  $("#query").submit();
            }
          });
    });
</script>

这个html:

<div id="textarea">
    <form name="query" class="form1" id="query" action="query.py" method="post">
        <textarea rows="2" name="message" id="message" class="message" placeholder="RM911 Chat" cols="26"></textarea>
        <input type="submit" id="submit" name="submit1" value="a"/>
    </form>
</div>

如果输入的 id 是“提交”,则没有任何作用,如果它的 id 是别的东西 - 它可以工作......但是整个项目使用“提交” id 作为提交按钮,我不想重命名它(因为 CSS)。有什么我可以做的吗?

4

2 回答 2

11

试试这个,在你的脚本中,

$("#submit").trigger('click');

完整代码,

$(function () {
    $("#message").keypress(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        //alert(code);
        if (code == 13) {
            $("#submit").trigger('click');
            return true;
        }
    });
});

演示

于 2013-11-06T05:01:16.627 回答
3

在这里,当按下回车键时,这会提交表单(通过触发提交按钮);并允许您在按住 Control 并按 Enter 键时创建一个新行。

$(function(){
    function getCaret(el) {
        if (el.selectionStart) {
            return el.selectionStart;
        } else if (document.selection) {
            el.focus();

            var r = document.selection.createRange();
            if (r == null) {
                return 0;
            }

            var re = el.createTextRange(),
                rc = re.duplicate();
            re.moveToBookmark(r.getBookmark());
            rc.setEndPoint('EndToStart', re);

            return rc.text.length;
        }  
        return 0;
    }
    $("#message").keyup(function(e){
        if ((e.keyCode == 13 || e.keyCode == 10) && e.ctrlKey) {
            var content = $(this).val();
            var caret = getCaret(this);
            $(this).val(content.substring(0,caret)+
                        "\n"+content.substring(caret,content.length));
            e.stopPropagation();
        } else if (e.keyCode == 13 || e.keyCode == 10){
            $("#submit").click();
        }
    });
});

这是一个演示

感谢 TheSuperTramp提供Ctrl getCaret+Enter 解决方案的原始键盘代码。

于 2013-11-06T05:01:09.960 回答