2011-12-31 127 views
0

我有一个页面,可以将textareas的值输入到mysql数据库中。由于这是一个伪提交,因此在输入数据后手动将textarea的值更改为无。然而,我按提交后,数据输入正确,但textarea不清除。根据答案的数量,html(下面)会被回复几次。JQuery val不会改变

的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'> 
+0

[即一行代码] http://jsfiddle.net/Xr8m7/1/( )工作得很好。你为什么不在[你接受的问题的答案]中使用'ajax'代码(http://stackoverflow.com/questions/8690117/form-still-submits-on-preventdefault)? – Sparky 2011-12-31 20:27:07

+0

@ Sparky672我不小心复制并粘贴了我以前的代码。代码现在更新在我原来的问题 – kirby 2011-12-31 20:39:36

+0

你可以尝试'$('。commentBox')。text(“”);'? – 2011-12-31 20:45:47

回答

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) { 
+0

我用我当前的实际代码更新了我的原始问题,但仍未清除.commentBox值 – kirby 2011-12-31 20:41:43

+0

您仍然以与以前相同的方式滥用'on'。 on(“submit”,...)'not“(”.answerContainer“)。on(”submit“,”form“,...)'''你需要做'$(”form“)。 – Domenic 2011-12-31 20:47:09

+0

我已更新我的代码以反映您的答案,但.commentBox在运行代码后仍未清除 – kirby 2011-12-31 20:51:11