JQuery val没有变化

时间:2011-12-31 20:21:01

标签: jquery

我有一个页面,它将textareas的值输入到mysql数据库中。由于这是伪提交,因此在输入数据后手动将textarea的值更改为空。然而,在我按下提交后,数据输入正确,但textarea不清楚。根据答案的数量,html(下面)会多次回显。

Jquery的:

<script type='text/javascript'>
    $('document').ready(function(){

$('.commentContainer').load('../writecomment.php');

 $("form").on("submit", function (e) {
    e.preventDefault();

    var $form = $(this);
    $.ajax({
        "url": $form.attr("action"),
        "data": $form.serialize(),
        "type": $form.attr("method"),
        "response": function() {
            $('.commentContainer').load('../writecomment.php');
            $('.commentBox').val(""); //this line doenst work
        }
    });
});
});



</script>

HTML:

<textarea class='commentBox'  wrap='soft' name='comment'></textarea>
<input type='submit' value='comment' class='submitCommentBox'>

1 个答案:

答案 0 :(得分:2)

您滥用on。它应该是

$("form").on("submit", function (e) {
    e.preventDefault();
    var $form = $(this);

    $.ajax({
        url: $form.attr("action"),
        data: $form.serialize(),
        type: $form.attr("method"),
        success: function () {
            $(".commentContainer").load("../writecomment.php");
            $(".commentBox").val("");
        }
    });
});

您现在正在做的是将一个处理程序附加到位于.answerContainer内的每个form(大概都是.answerContainer)。这就解释了为什么表单提交的内容每次都会发生一次。


编辑:我会尽量让这个更清楚,因为根据评论你似乎很难掌握我想说的话。非常简单:

以下行错误:

$('.answerContainer').on('submit', 'form', function(event) {

应该是:

$("form").on("submit", function (event) {