ПОДАТЬ без обновления - PullRequest
0 голосов
/ 05 августа 2011

Я публиковал разные версии этого кода весь день (извините!). Я сейчас пытаюсь сделать так, чтобы при отправке (нажав Enter) она не обновляла страницу. Я пытался установить кнопку отправки в качестве КНОПКИ, но это работает только тогда, когда вы действительно нажимаете на нем.

Я проводил исследования, но многие из моих результатов - устаревшие методы JavaScript.

Они взяты из моей HTML-разметки. Все остальное - это обычный html, head, body и CSS.

<?php
session_start();
if(!isset($_SESSION['id'])){
    $_SESSION['id'] = rand(0,100);
}
?>

<div id="room">
<div id="send_cont">
<form id="chat">
    <input type="text" id="msg" />
    <input type="submit" id="send" value=" " /> 
</form>
</div>

<div id="messages">
Loading...
</div>
</div>

<script type="text/javascript">
$(document).ready(function(){
var refreshchat = function(){
    $.get('ajax.php', function(data) {
        $('#messages').html(data);
    });
    var msgs = document.getElementById('messages');
    msgs.scrollTop = msgs.scrollHeight;
}
var getmsgs = self.setInterval(refreshchat,0);
$('#chat').submit(function(){
    var msg = $('#msg').val();
    $.post("ajax.php", { msg: msg, from: "You" },
       function(data) {
            $('#messages').html(data);
            $('#msg').val('');
            var msgs = document.getElementById('messages');
            msgs.scrollTop = msgs.scrollHeight;
    });
});
return false;
});
</script>

Ответы [ 3 ]

1 голос
/ 05 августа 2011

Возможно, вы захотите запретить поведение браузера по умолчанию с помощью объекта события, который можно передать обработчику щелчков событий jQuery.

Что-то порядка:

$('#send').click(function(evt){
    evt.preventDefault()
    // perform ajax call here...
});
0 голосов
/ 05 августа 2011
$(document).ready(function() {
    var refreshchat = function() {
            $.get('ajax.php', function(data) {
                $('#messages').html(data);
            });
            var msgs = document.getElementById('messages');
            msgs.scrollTop = msgs.scrollHeight;
        }
    var getmsgs = self.setInterval(refreshchat, 0);
    $('#chat').submit(function() {
        var msg = $('#msg').val();
        $.post("ajax.php", {
            msg: msg,
            from: "You"
        }, function(data) {
            $('#messages').html(data);
            $('#msg').val('');
            var msgs = document.getElementById('messages');
            msgs.scrollTop = msgs.scrollHeight;
        });
        return false; // <--- needed here...
    });
    // return false; <--- not in the right place....
});
0 голосов
/ 05 августа 2011

вы можете использовать

$('#submit').click(function(evt){
    evt.preventDefault()
    // perform ajax call here...
});

или

$('#submit').click(function(evt){
    // perform ajax call here...

    return false ;

});
...