我一直在尝试各种方法,以便在按下回车键时提交表单。我知道对于输入字段可以这样做,但由于这将是一个评论,所以需要使用文本区域。
以下是我当前使用的用于通过按钮提交表单的代码:
$('.messageSubmit').live('click', function(){
var name = $(this).siblings('.messageTextarea').val();
var theid = $(this).attr('data-the_id');
var dataString = name;
$.ajax({
dataType: 'json',
url: "https://api.instagram.com/v1/media/"+$(this).attr('data-the_id')+"/comments?"+hash,
type: "POST",
data: "text="+dataString,
success: function(data) {
// finish load
console.log(data, dataString, 'fail');
},
error: function(data) {
var username = JSON.parse(localStorage.getItem('iguser'));
var profilepic = JSON.parse(localStorage.getItem('iguserimg'));
//console.log(data, dataString, 'succ');
$('.box[data-the_id="' + theid + '"]').children('.postMessage').children('.messageComments').append('<li><img class="commentUserImg" src="' + profilepic + '"><div class="commentUser">' + username + '</div><div class="commentText">' + dataString + '</div></li>');
$('.messageTextarea').val(''); // Remove comment from TextArea
}
});
return false;
});
它的功能和预期一样。我想去掉提交按钮,只需在用户按下回车键时提交表单即可。我知道有些人建议不要这样做,但这个网站的用户通常会在Facebook等地方按回车键。
我已经尝试过一些方法,但似乎都不起作用。
$('.messageTextarea').keydown(function() {
if (event.keyCode == 13) {
this.form.submit();
return false;
}
});
这是我的表单代码。
<form>
<textarea class="messageTextarea" onfocus="if(this.value==this.defaultValue)this.value=\'\';" onblur="if(this.value==\'\')this.value=this.defaultValue;">Write your comment here...</textarea>
<input type="submit" data-the_id="' + theid + '" name="submit" class="messageSubmit" id="submit_btn" value="Submit your comment">
</form>
任何帮助都将是巨大的。此外,如果有人知道如何添加一个if函数以防止表单提交当前Textarea中的默认值,那就太好了。目前,以现在的TextArea设置,如果你只是点击提交,它会提交“在这里写下你的评论...”
谢谢。
编辑:是否可以通过一个按钮来提交,就像平常一样,但把它隐藏起来,当你按Enter时它会触发该按钮的调用?但是...我会遇到相同的问题,在TextArea中按Enter键除了换行什么也不会做...