2014-06-23 18 views
0

所有其他類似的問題都非常特定於提問者的特定情況,所以我想我會問我的。形成ajax調用PHP頁面不工作

我只是想使用ajax發送表單到它的動作頁面,但由於某種原因,當表單提交時頁面仍然刷新。任何想法爲什麼?

形式:

<form name='comment_form' id='comment_form' action='leave_comments.php' onSubmit='return validateForm()'>    
    <input type='text' name='user_comment' class='user_comment' placeholder='Leave a comment...'> 
    <input type='hidden' name='hidden_folder' value='$random_directory'> 
    <input type='hidden' name='hidden_title' value='$title'> 
    <input type='hidden' name='hidden_name' value='$image_name'> 
    <input type='hidden' name='hidden_image' value='$image_info'> 
    <input type='hidden' name='hidden_user' value='$posted_by'>   
    <input type='submit' class='leave_comment button' name='leave_comment button' value='Comment'> 
    </form> 

的JS驗證:

<script> 
function validateForm() { 
    var o=document.forms["leave_comments_form"]["user_comment"].value; 
    if (o==null || o=="") 
    { 
     alert("Error 2591 : Whoops, looks like you forgot to leave a comment!"); 
     return false; 
    } 
} 
</script> 

的JS AJAX:

<script> 
$("#comment_form").submit(function(e) { 
    e.preventDefault(); 
    if (validateForm()) { 
     var form = jQuery("#comment_form"); 
     $.ajax({ 
      type: "GET", 
      url: form.attr("action"), 
      data: form.serialize(), 
      success: function() {} 
     }); 
    } 
}); 
</script> 

我只是試圖讓表單提交不需要刷新頁面。

+0

**開發者控制檯** –

+0

爲什麼在提交函數中使用jQuery,而不是valide函數? – Barmar

+0

什麼'document.forms [「leave_comments_form」]'是指?它似乎不存在於你的HTML中。 – showdev

回答

0

validateForm()需要返回true當驗證成功:

function validateForm() { 
    var o=document.forms["leave_comments_form"]["user_comment"].value; 
    if (o==null || o=="") 
    { 
     alert("Error 2591 : Whoops, looks like you forgot to leave a comment!"); 
     return false; 
    } 
    return true; 
} 

這是沒有必要的onsubmit屬性,但是當你寫if (validateForm())它是必要的,因爲undefined是falsy。

+0

實施了建議的更改。不幸的是,頁面更新仍然存在 – jstrat6

0

它與你的提交按鈕有關。將它移動到<form>標記之外,或者使用按鈕代替。

<form name='comment_form' id='comment_form' action='leave_comments.php' onSubmit='return validateForm()'>    
    <input type='text' name='user_comment' class='user_comment' placeholder='Leave a comment...'> 
    <input type='hidden' name='hidden_folder' value='$random_directory'> 
    <input type='hidden' name='hidden_title' value='$title'> 
    <input type='hidden' name='hidden_name' value='$image_name'> 
    <input type='hidden' name='hidden_image' value='$image_info'> 
    <input type='hidden' name='hidden_user' value='$posted_by'>   
    </form> 
<input type='submit' class='leave_comment button' name='leave_comment button' value='Comment'>