0

我在我的聊天中放了一个 jQuery 脚本,这样消息就可以在不刷新页面的情况下发送。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">

    $(document).ready(function(){
            $("#msgsending").validate({
               type: "POST",
                    debug: false,

                    submitHandler: function(form) {
                            // do other stuff for a valid form
                            $.post('index.php', $("#msgsending").serialize(), function(data) {

                            });
                    }
            });
    });
    </script>

并形成

 <form id="msgsending" name="form" method="post" action="" > 
<input name="message" id="message" type="text" maxlength="350" />

<input name="message" id="message" type="text" maxlength="350" />

<input name="submit" type="submit" value="Send!" />

</form>

该代码完美运行。(索引是在数据库中插入消息+用户名的脚本)

但现在我有一个问题。

提交后消息输入中的文字不会被删除。我用谷歌搜索了很多页面,所有代码都不起作用。(Somes 工作,但消息未发送)

你有什么建议我?

4

3 回答 3

1

$('#message').val('');应该清除input' 的值,我猜你会在发送消息后执行此操作,例如:

$(document).ready(function(){
    $("#msgsending").validate({
       type: "POST",
          debug: false,
          submitHandler: function(form) {
               // do other stuff for a valid form
               $.post('index.php', $("#msgsending").serialize(), function(data) {
                    $('#message').val('');
               });
          }
    });
});

这仅适用于具有 的第一个元素ID #message,因为ID' 是唯一的,您不能有两个具有相同 的元素ID

于 2013-02-20T15:27:31.980 回答
0

代替

$.post('index.php', $("#msgsending").serialize(), function(data) {

});

您可以执行以下操作:

var data = $("#msgsending").serialize();
$('#message').val('');

$.post('index.php', data, function(data) {

});

在发送请求之前清空消息字段或如@adeneo 建议的那样,您可以在 AJAX 的成功回调中清空该字段。

于 2013-02-20T15:28:22.680 回答
0

您可以在回调函数中放置任何代码.post()以清除或重置表单。

您还type: "POST"列出了.validate(). 您应该删除它,因为它不是此插件的有效选项/参数

由于您正在使用 ajax,因此您需要return false在末尾submitHandler添加 a 以防止页面重定向。

可选地,您还可以替换$('#msgsending').serialize()$(form).serialize()form.serialize()因为form被传递到submitHandler回调函数中。

$(document).ready(function(){
    $("#msgsending").validate({
        type: "POST", // <-- REMOVE THIS... not a valid plugin option
        debug: false,
        submitHandler: function(form) {
            // do other stuff for a valid form
            $.post('index.php', $(form).serialize(), function(data) {
                $('#message').val(''); // clears out #message
                // any other code to clear out or reset the form
            });
            return false; // prevent page redirection
        }
    });
});
于 2013-02-20T16:26:10.663 回答