在AJAX调用后停止HTML表单消失

时间:2014-07-22 22:30:46

标签: php jquery ajax forms

我正在尝试建立一个基本验证的评论系统,其中答复不能为空(0个字符)。

当用户点击回复按钮时,系统将响应AJAX调用以显示表单(Textarea)。当用户提交表单并且textarea为空时,表单下方将显示一条错误消息。我的问题是表单在用户提交表单后立即消失,并且不允许我显示错误消息。

如何在所有验证成功之前停止HTML表单消失?

的index.php:

<script>
  $(document).ready(function(){
    $(".replyText").click(function(){
      $.ajax({
        type: "GET",
        url: "reply_ajax.php",
        async: false,
        success: function(text){
        response = text;        
        }
      });
      $(this).after(response);
    });
  });
</script>

reply_ajax.php:

<div class="replydiv">
    <textarea rows='4' cols='50' form='replyform' name='reply'>

    </textarea>
    <form id='replyform' method='post'>
            <input type='submit' name='submit' class='submit'>      
            <input type='submit' name='cancel' value='Cancel'>
    </form> 
</div>   
<script>
    $(function(){
            $(".submit").click(function(){
                    if($(this).closest('textarea').val() == "")
                            $(".comments").append("Please enter a reply!");                         
            });
    });

</script>

1 个答案:

答案 0 :(得分:3)

您可以使用e.preventDefault()来阻止回发,例如:

$(function(){
            $(".submit").click(function(e){
                    if($(this).closest('textarea').val() == ""){
                            $(".comments").append("Please enter a reply!");  
                            e.preventDefault()}                       
            });
    });