2017-03-09 4 views
0

Ich versuche, eine Eingabe zu machen, um Daten mit jquery senden, aber mein Code funktioniert nicht. Kann mir jemand sagen, was ich hier vermisse?Jquery Keydown wird nicht arbeiten

<textarea name="reply" class="reply" id="replyChat" placeholder="Write your message"></textarea> 

JS

function SendMessage() { 
     $.ajax({ 
     type: "POST", 
     url: "/ajax/reply", 
     data: dataString, 
     cache: false, 
     success: function(html) { 
      $('.messages-body').append(html); 
     } 
     }); 
    } 

    $('#replyChat').bind('keydown', function(e) { 
     if(e.keyCode==13) { 
     SendMessage(); 
    } 
    }); 
    $('body').on("click",".reply-btn",function() { 
    SendMessage(); 
}); 

Click-Funktion arbeitet nur keydown fein hier nicht funktioniert.

+1

es für mich funktioniert, wird das Element dynamisch –

+0

erzeugt wird, können Sie schreiben ein jsfiddle – ArUn

+0

ist dieser Code in Ihrem Dokument-Ready-Funktion? – osanger

Antwort

1

Verwenden Sie event delegation für das dynamisch generierte Element, obwohl Sie die Eigenschaft event.which verwenden, die von jQuery vorgeschlagen wird.

function SendMessage() { 
 
    console.log('hi'); 
 
    // replace with your ajax code 
 
} 
 

 
$('body').on('keydown', '#replyChat', function(e) { 
 
    if (e.which == 13) { 
 
    SendMessage(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea name="reply" class="reply" id="replyChat" placeholder="Write your message"></textarea>