我有这个简单的sctipt
<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)。我有什么可以做的吗?
答案 0 :(得分:7)
在脚本,
中试试这个$("#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;
}
});
});
答案 1 :(得分: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();
}
});
});
这里是Demo
getCaret
的{{1}}和Ctrl + Enter解决方案的原始密钥代码。