在下面的脚本中,我已经获得了允许我通过按Shift + Enter添加新行的代码,但是当我按下输入时,代码什么都不做。我也没有错。我已经删除了调整大小的插入符号,所以没有必要弄乱它。我的代码中有什么错误阻止我提交表单?
免责声明:是的我知道这个主题有很多帖子,但没有一个能解决我的问题,所以我希望这是一个新问题。
<script>
$('#myFormActivity .commentTextarea').keypress(function(event){
if (event.keyCode==13 && !event.shiftKey) {
event.preventDefault();
$( "#myFormActivity" ).submit(function(event1) {
alert("sent");
// Stop form from submitting normally
event1.preventDefault();
// Get some values from elements on the page:
var $form = $( this ),
activityid = $form.find( "input[name='activityid']" ).val(),
comment = $form.find( "textarea[name='comment']" ).val(),
url = "process/insertComment.php";
// Send the data using post
var posting = $.post( url, { activityid: activityid, comment: comment } );
// Put the results in a div
posting.done(function( data ) {
$(this).children('.commentTextarea').val('');
});
return false;
});
return false;
}
});
</script>
class commentTextarea是分配给表单内部的textarea元素的类,其ID为myFormActivity。
答案 0 :(得分:2)
当你说
时,你在按键事件中做了什么$( "#myFormActivity" ).submit(function(event1) {
将事件绑定到表单提交,而不是触发它。类似的东西(我实际上没有测试过)以下是你想要的更多内容(请注意脚本标签上的mime-type以及事件应该在文档准备中绑定):
<script type="text/javascript">
$(function(){
$('#myFormActivity .commentTextarea').keypress(function(event){
if (event.keyCode==13 && !event.shiftKey) {
event.preventDefault();
$( "#myFormActivity" ).submit();
return false;
}
});
$( "#myFormActivity" ).submit(function(event1) {
alert("sent");
// Stop form from submitting normally
event1.preventDefault();
// Get some values from elements on the page:
var $form = $( this ),
activityid = $form.find( "input[name='activityid']" ).val(),
comment = $form.find( "textarea[name='comment']" ).val(),
url = "process/insertComment.php";
// Send the data using post
var posting = $.post( url, { activityid: activityid, comment: comment } );
// Put the results in a div
posting.done(function( data ) {
$(this).children('.commentTextarea').val('');
});
return false;
});
});
</script>