0

我正在使用 Enter 键发布评论,这在 chrome 浏览器中可以正常工作,但此代码不适用于 mozilla 浏览器,我仅在 2 个浏览器中进行了测试。我希望这段代码适用于所有浏览器。我使用 jquery 1.8 的以下代码需要进行哪些更改。

$(document).on('keydown','.commentbox', function (f) {
    if (event.keyCode == 13)  {                                  

        parentId=$(this).parent().attr("id");

        var idis='#'+parentId;
        var commentOn = $(idis).find('input[name="commentOn"]').val();
        var commentIs = $(idis).find('textarea[name="commentbox"]').val();
        var dataString1 = 'commentOn='+ commentOn
            +'&comment='+commentIs;
        $("#comment").val('');
        event.preventDefault();
        $.ajax({   
            type: "POST",   
            url: "addmessagecomment", 
            dataType: "text html",
            data: dataString1,   
            success: function(data) { 
                var divtoadd="#comments_"+commentOn;
                $(divtoadd).append(data); 
                $(idis).find('textarea[name="commentbox"]').val("");
            }     
        }); 
    }    
}); 
4

3 回答 3

0

尝试

$('.commentbox').keyUp(function(event) {
    var keycode=(event.keyCode?event.keyCode:event.which);
    if(keycode=='13'){
      //your function here...
    }
});

或 .keydown()

于 2013-04-29T02:51:48.123 回答
0

您没有提及event. 改变

$(document).on('keydown','.commentbox', function (f) {
    if (event.keyCode == 13)  {    

$(document).on('keydown','.commentbox', function (event) {
        if (event.keyCode == 13)  {  

或者

$(document).on('keydown','.commentbox', function (f) {
        if (f.keyCode == 13)  {    
于 2013-04-29T02:54:19.670 回答
0

您需要将 传递event给方法或使用f它来获取事件值,最简单的方法就是更改fevent

$(document).on('keydown','.commentbox', function (event) {

小提琴示例:http: //jsfiddle.net/RYbNZ/

于 2013-04-29T02:56:10.647 回答