我有一个表单,我使用ajaxForm来处理提交,问题是第一次成功后,我无法提交两次表单(这已经起作用了),因为它丢失了事件处理程序。我尝试使用事件委托,但是我得到的仍然是默认的浏览器行为,没有通过ajaxForm传递,我使用alert('')进行调试,并且每次触发提交处理程序。我正在学习,所以任何帮助,解释都将非常有帮助
jQuery
$(document).on('submit', "#form",function() {
$(this).ajaxForm( {
target: '#preview',
success: function() {
$('.box-search').slideUp('slow');
$('#form').trigger("reset");
}
});
});
可以防止默认设置吗?
HTML表单
<div class="box-search">
<form action="assets/php/insert-comment.php" method="POST" id="form">
<div class="container search-box">
<div class="row">
<div class="input-field col l12 s8 center offset-s2">
<input type="text" name="book_name" id="books" autocomplete="off" required/>
<label for="books">Busca un Libro...</label>
<div class="result"></div>
</div>
<div class="input-field col s12 no-display">
<textarea name="comment_name" id="textarea" class="materialize-textarea" maxlength="250" data-length="250"></textarea>
<label for="textarea">Comentario...</label>
<input type="submit" >
</div>
</div>
</div>
</form>
</div>
<div class="padding" id="preview"></div>
PHP文件insert-comment.php
<?php
include("conectar.php");
$link = Conectarse();
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$book=mysql_real_escape_string($_POST['book_name']);
$comment=mysql_real_escape_string($_POST['comment_name']);
if(strlen($book)>0 && strlen($comment)>0)
{
mysql_query("INSERT INTO comments (name_Book,comment)
VALUES('$book','$comment')", $link);
echo "<h3>Tu comentario se registró con éxito. ¡Muchas
Gracias!
</h3>";
}
}
?>