如何在成功或失败时停止jquery ajax页面重新加载

时间:2014-04-23 16:04:12

标签: jquery ajax

我在ajax jquery中遇到成功问题。我的整个jsp重新加载ajax成功,即使在返回false之后。如何防止页面重新加载。

function AjaxCall(category){

var formValue = $('#TP').serialize();
$.post('saveIndvQuestionnaire.jsp?'+formValue+'&category='+category,
//$.post('callPage.jsp',
        function(data) {
    return false;
});
}

我从输入类型图像

调用AjaxCall函数
<input id="test" type="image" onclick="javascript:AjaxCall('Test');" src="../images/v10/larrow.png">

我不确定我是否读过某个类型的图片会拨打两个电话。

感谢。

3 个答案:

答案 0 :(得分:1)

问题可能是输入类型图像的行为。 https://developer.mozilla.org/es/docs/Web/HTML/Element/Input 尝试在你的函数中使用e.preventDefault(),不应该提交。

$( "#test" ).click(function( event ) {
  event.preventDefault();
var formValue = $('#TP').serialize();
$.post('saveIndvQuestionnaire.jsp?'+formValue+'&category='+category,
        function(data) {
    return false;
});

});

Exmple

http://jsfiddle.net/HBeVv/10/

您可以使用另一个html控件来实现此功能,就像使用Image:

的href一样
<a href="#" onClick="alert('Hello World!')"><img title="The Link" /></a>

答案 1 :(得分:1)

我想你也可以这样

$('YourForm').submit(function(e){
   e.preventDefault();
   formdata=$(this).serialize();
   $.ajax({
      type: "POST",
      url: url,
      data: formdata
      }).done(function(data){
  //do something
   });
});

答案 2 :(得分:1)

试试这个:

<input id="test" type="image" onclick="return javascript:AjaxCall('Test');" src="../images/v10/larrow.png">

你应该点击“返回”响应。