none
jquery beforSend的疑問 RRS feed

  • 一般討論

  • 各位大大,請問~
    我原本是要在SUMBIT之後,取一個單號值,但是這幾天研究下來,無論我怎麼取值,都無法在
    beforeSend去取得,以下是我的程式碼,在GetID.asp取得一個單號,在success的時候將
    值給予NUM 這是沒問題,但是sumbit之後沒辦法儲存單號,所以找到了,beforeSend
    現在問題來了,我該如何將success(data)的值傳給beforeSend() ? 還是沒辦法這樣做?因
    為測試結果雖然success和beforeSend的形態都是functon但beforeSend沒辦法接授json
    [0].NUM,錯誤會顯示'0'是null或不是一個物件

    $.ajax({      

      url :"GetID.asp",

      method : 'get',

      datatype : 'json',

    //success : function(data){        
       // var json = jQuery.parseJSON(data);           
       // var N1 = json[0].NUM; 
       // $("#NUM").val(N1);              
     // },

       beforeSend : function(){
        function(data){        
           var json = jQuery.parseJSON(data);           
           var N1 = json[0].NUM;  =>有問題
           $("#NUM").val(N1);                 
      }     
    });

    • 已變更類型 a-talinModerator 2010年12月10日 上午 02:33 jQuery 後續討論
    2010年12月8日 上午 01:32

所有回覆

  • beforeSend 是傳入一個XMLHttpRequest作為參數,用法跟你想的不太一樣

    你先說一下你的單號是要從什麼地方取得?

    2010年12月8日 上午 01:41
    版主
  • 從GetID.asp


      { 
     "NUM": "XXA327" 
     ,"t" : "AMD" 
     ,"e" : "NYSE" 
     ,"l" : "4.73" 
     ,"l_cur" : "4.73" 
     ,"ltt" :"4:03PM EDT" 
     ,"lt" : "Jun 1, 4:03PM EDT" 
     ,"c" : "+0.19" 
     ,"cp" : "4.19" 
     ,"ccol" : "chg" 
     ,"el" : "4.69" 
     ,"el_cur" : "4.69" 
     ,"elt" : "Jun 1, 7:59PM EDT" 
     ,"ec" : "-0.04" 
     ,"ecp" : "-0.85"  
      } 
    ]

    由於使用SUCCESS沒辦法呈現我要的,所以,才想要使用beforeSend

     

    2010年12月8日 上午 01:46
  • ajax方法的順序是先跑beforeSend,然後送出request,伺服器回應之後才跑success。如果你的單號是要從伺服器取得,那就沒辦法在beforeSend就抓到單號,只能在success裡面去做。

    你是要取得單號之後再送一次Request做儲存嗎?在success裡面再呼叫一次ajax方法,或是想辦法把「抓單號」跟「儲存」兩個動作併成一個。

    2010年12月8日 上午 02:17
    版主
  • 主要是表單送件後(sumbit),直接回傳一個單號後儲存 ,才想到這樣的方式

    若是success 在呼叫一次ajax, 就會變成 $.ajax 所接收到的值無法傳值給success : function(data),若是這樣的情況,我該如何把success : function(data)  的 data 變成全域變數?

    2010年12月8日 上午 03:01