2012-08-28 78 views
0

我在一個jsp中調用了struts2動作。但它稱它兩次。爲什麼?JQuery Ajax方法調用兩次

JSP

$("#inputField").change(function() 
    { 
     var inputField= $("#inputField").val(); 
     if(inputField !== '') 
     { 
      var url = 'myUrl'; 
      $.getJSON(url, function(retVal) 
      { 
       $.each(retVal.retList, function(index, element) 
       { 
        console.log(element.name); 
       }); 
      }); 
     } 
    }); 

Struts2 Action

public String getJSON() throws Exception 
{ 
    System.out.println("Method Executed"); 
} 

當此ajax調用返回,我得到這個

Method Executed 
Method Executed 

我怎樣才能讓這個只執行一次?

+0

是這個jQuery功能也越來越叫了兩聲「搞定」? –

+0

@ UmeshAwasthi號碼 –

+1

似乎比行動也從其他地方也被調用。 –

回答

0

確保您只註冊'更改'事件一次。雙ajax調用的原因可能是您要在代碼中添加兩次更改偵聽器。看看here

+0

它只附加一次,雖然頁面是有時重新加載,我相信當頁面使用'window.location.replace(url);'重新加載時,所有事件都會被解除綁定。所以這意味着事件只能綁定一次。糾正我,如果我錯了。 –

1

你可能會使用JSON插件,它調用所有的方法與開始試圖序列化他們output.Try重命名方法名