Keydown活动不适用于mozilla

时间:2013-04-29 02:49:41

标签: jquery

我正在使用回车键发布评论,这是正常使用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("");
            }     
        }); 
    }    
}); 

3 个答案:

答案 0 :(得分:0)

尝试

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

或.keydown()

答案 1 :(得分: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)  {    

答案 2 :(得分:0)

您需要将event传递给方法或使用f获取事件值,最简单的方法就是将f更改为event:< / p>

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

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