我有一个页面,它将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'>
答案 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) {