解决方案 »

  1.   

    你這個問題涉及到的是異步請求的問題一般來說,ajax都是異步請求,就是說當ajax發送一個請求到服務器的時候,js的執行并不會中斷,而是繼續向下執行的
    所以,如果你想在后面的js中運用服務器對ajax回應的數據,那么有兩個方法:
    1,將ajax的請求改成同步請求(怎麼改,baidu),不過這樣不是很好(為什麽不好,baidu)
    2,把要運用服務器對ajax回應數據的js寫到ajax的回調中,這樣就沒有問題了騷年,我看好你,加油!
      

  2.   

    ajax 设置能同步的就可以了 。
      

  3.   

       var result = ""; 
    function GetKnowledgeId()
        {      
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("GetKnowledgeIdByName")',
                    data: { Descript: $("#inputId").val()},
                    success: function (returnValue) {
                        result = returnValue;
                    }
                });
        }function getValue(){
      return  result;
    }$(function () {
     $("#OK").click(function(){
      GetKnowledgeId();
     alert(getValue());
    }
    });楼主试试这种方式,我没测试,你看看
      

  4.   

        function GetKnowledgeId()
        {
                var result = "";
                $.ajax({
                    type: 'POST',
                    url: '@Url.Action("GetKnowledgeIdByName")',
                    data: { Descript: $("#inputId").val()},
                    success: function (returnValue) {
                        result = returnValue;
                    }
                });
             while(!result ){ }
                return result;
        }$(function () {
     $("#OK").click(function(){
      var r= GetKnowledgeId();
     alert(r);
    }
    });这样可以吧 
      

  5.   

    异步回调实现,这里是讲的.net的,我看你是用的action,是java的,原理应该差不多
    前端页面aspx<%@ Register TagPrefix="cb" TagName="Callback" Src="~/Callback.ascx" %>
    <script type="text/javascript">
            $(function () {
                PerformCallback();
           }
          function OnCallback1Complete(ret) {}
         function OnCallback1Error(ret) {
                alert(ret);
            }
    <cb:Callback ID="Callback1" runat="server" ClientPerformCallback="PerformCallback" ClientCompleteEvent="OnCallback1Complete"
             ClientErrorEvent="OnCallback1Error" OnCallback="Callback1_Callback" />
    后台.cs文件protected void Callback1_Callback(object source, Callback.CallbackEventArgs e)
        { e.Result =你要传递的结果}