2014-01-11 102 views
0

表單提交後頁面重新加載,我希望它不能重新加載。 更新:在下面的答案我想出了下面的代碼。表單提交正確,但頁面重新加載會發生什麼。 之前,這行代碼工作得很好:Ajax表單提交重新加載頁面

$(document).ready(function() { 
    $('#poll').ajaxForm(function() { 
     $("#polling_id").load("poll_results.php"); 
    }); 
}); 

今天,我已經添加的.htaccess刪除擴展名爲.php。這可能會影響到這一點嗎?

HTML

<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="http://malsup.github.com/jquery.form.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></SCRIPT> 
</head> 
<div class="polling" id="polling_id"> 
    <br><br>  

    <form id="poll_form" method="POST" action="process-vote.php" /> 
    <div class="poll_objects"> 
     <input type="hidden" name="o1" value="<?php echo $option1; ?>" /> 
     <input type="hidden" name="o2" value="<?php echo $option2; ?>" /> 
     <input type="hidden" name="o3" value="<?php echo $option3; ?>" /> 
     <span class="footer_font"><input type="radio" name="radio_1" value="<?php echo $option1;?>" id="radio" /><label for="radio"><?php echo $option1;?></label> </span><br><br> 
     <span class="footer_font"><input type="radio" name="radio_1" value="<?php echo $option2;?>" id="radio2" /><label for="radio2"><?php echo $option2;?></label></span><br><br> 
     <span class="footer_font"><input type="radio" name="radio_1" value="<?php echo $option3;?>" id="radio3" /><label for="radio3"><?php echo $option3;?></label></span><br><br> 
     <div class="float_buttons"> 
      <input type="submit" name="submit_vote" value="Vote!" class="button" /> 
      <input type="submit" name="results" value="Poll Results" class="button"/> 
     </div> 
    </div> 
</div> 
</form> 

的jQuery:

<script> 
    $(document).ready(function() {   
     $.ajax({  
      $('#poll_form').submit(function(e) { 
       e.preventDefault(); 
       // note where the e comes from. 
       var a = $(this).serialize(); 
       $("#polling_id").load("poll-results.php"); 
      }); 
     });  
    }); 
</script> 
+1

你已經取代線順序:)'$阿賈克斯({'和'e.preventDefault(;' –

回答

3

它看起來並不像你拍攝的事件。

$('#poll_form').submit(function(e) { 
    e.preventDefault(); 
    // note where the e comes from. 
    var a = $(this).serialize(); 
    // now do your ajax stuff here. 
}); 
+0

你的方法加載的東西,而頁面刷新,但它不提交表格 – user3186034

+0

這是因爲你必須實施必要的'$ .ajax({})'調用來發送數據到你的服務器並作出適當的響應 –

+0

以及提交的表單和頁面重新加載。我已更新我的帖子。 – user3186034

0

你也可以把:

<script> 
    function validate() 
    { 
    ... 
     blablabla 
    ... 
    return false; // This cause the submit function to be stopped. 
    } 
</script> 
<form onClick="validate()">