2014-09-02 57 views
1

我有一个自定义函数,我已经定义了,然后随后在页面加载时调用。我需要的功能,因为它是填充一组selectlists运行该页面加载时:在JQUERY成功上调用函数

<!---Populate Custom Service Description select lists --->   
<script type="text/javascript"> 
function PopulateSelectLists(){ 
    // Important: Must append the parameter "&returnformat=json" 
    $.ajax({ 
     url: 'cfcs/get_descriptions.cfc?method=getDescriptions&returnformat=json' 
     , dataType: 'json' 
     , success: function(response){ 
      $.each(response.DATA, function(I, row){ 
      // get value in first column ie "description" 
      var description = row[0]; 

      // append new option to list 
      $("#descriptionDD1").append($('<option/>', { 
        value: description, 
        text : description 
      })); 
      $("#descriptionDD2").append($('<option/>', { 
        value: description, 
        text : description 
      })); 
      $("#descriptionDD3").append($('<option/>', { 
        value: description, 
        text : description 
      })); 
      $("#descriptionDD4").append($('<option/>', { 
        value: description, 
        text : description 
      })); 
     }); 
     }, 
     error: function(msg){ 
      console.log(msg); 
     } 
    }) 
} 
$(document).ready(PopulateSelectLists); 
</script> 

我想打电话给我的自定义功能PopulateSelectLists()当另一个AJAX调用成功完成,所以我可以刷新我selectlists但似乎永远不会打电话给我的功能:

<!---Script to add new description to DB ---> 
<script> 
$(function(){ 
//Add a new note to a link 
$("#addDescriptionForm").submit(function(){ 
    // prevent native form submission here 
     $.ajax({ 
      type: "POST", 
      data: $('#addDescriptionForm').serialize(), 
      url: "actionpages/add_descriptions_modal.cfm", 
      success: function() { 
       PopulateSelectLists(); //Call Function to refresh selectlist 
       $("#addDescriptionResponse").append("Successfully added description."); 

       }  
     }); 
     return false;   
    }); 
}); 
</script> 

我在哪里错了?

+1

控制台中是否存在错误?如果您将alert或console.log添加为第一个成功行,您甚至可以获得成功吗?你调试了js吗? – 2014-09-02 13:58:19

+1

__it似乎永远不会调用我的功能_ - 请看看控制台,并添加一些调试console.log,即为了验证这 – 2014-09-02 13:59:36

+0

我刷新了我的浏览器,我可以看到它现在工作。这可能是我的错误,因为我认为浏览器缓存正在搞砸了。 – 2014-09-02 14:54:51

回答

1

在有问题的情况下,请求是否实际返回成功?用Firebug或Fiddler或任何你正在使用的开发工具栏检查响应。可能是由于服务器错误,连接错误或任何其他可能导致请求丢失的原因,所以它不会成功。

您也可以看看使用完整处理程序:http://api.jquery.com/jquery.ajax/

+1

这不是一个答案,它是一个评论。 – 2014-09-02 14:07:53

+0

是的,但结果有点太长了评论。如果使用完整的事件适用于OP,它将成为答案;) – rdmptn 2014-09-02 15:03:10