2014-03-26 69 views
0

我想獲取我使用ID創建的jQuery對話框中創建的文本框的值,並且我收到了空值。我認爲這是一個簡單的錯誤,但我無法找到它。你可以看看下面的代碼,告訴我如果我在那裏做錯了什麼。當試圖獲取jQuery對話框中的文本框的值時獲取「null」

$(document).ready(function() { 

    var name = $("#ip"), email = $("#stnid"), allFields = $(
      []).add(name).add(email); 
    $("#displayOrderDetailsDiv").on('click','.shippedOrder',function() { 

     var shipmentKey = $(this).closest('tr').find('td:first').text(); 
     $("#printLabelDialog").dialog({ 
      autoOpen: false, 
      height : "auto", 
      width : "auto", 
      modal: true, 
      buttons: [ { 
       text: "Print", 
       click: function() { 
        var ajax_load = "<img class='loading' src='loading.gif' alt='loading...' style='width: 20px; height: 20px; top: 50%; left: 50%; position:absolute;' />"; 
        $(this).html(ajax_load); 

        var ip = $("#ipAddr").val(); 
        var stnid = $("#stnid").val(); 
        $.ajax({ 
         url : 'printLabelTrackingNumber.jsp', 
         type : 'POST', 
         data : { 
          ipAddr : ip, 
          stationId : stnid 
         }, 
         success : function(data) { 

          $("#printLabelDialog").html(data); 

         }, 
         error : function(err) { 
          alert(err.responseText); 
         } 
        }); 
       } 
      } ] 
     }); 
     $("#printLabelDialog").html("<form><fieldset><label for=\"ip\">Printer IP</label> <input type=\"text\" name=\"ip\" id=\"ipAddr\" class=\"text ui-widget-content ui-corner-all\"> <labelfor=\"stnid\">Station ID:</label> <input type=\"text\" name=\"stnid\" id=\"stnid\" value=\"\" class=\"text ui-widget-content ui-corner-all\"></fieldset></form>"); 

     $("#printLabelDialog").dialog("open"); 

    }); 
}); 

我試圖讓文本框的id爲ipAddr使用線路var ip = $("#ipAddr").val();這是返回空值。

+0

你有Firebug嗎?如果添加一行console.log($(「#ipAddr」));? – burktelefon

+0

我收到正確的對象,如果我登錄它,但我無法獲得它在變量 – anirudh

+0

行。奇怪的。它可能是變量ip迷路了,是'stnid'好嗎?如果你嘗試ipAddr:$(「#ipAddr」)。val(), – burktelefon

回答

0

我想出了這個問題。在我得到該div中的文本框的值之前,我使用$(this).html(ajax_load);#printLabelDialog的值設置爲gif圖像,因此我得到該錯誤。

謝謝大家的幫助。

0

嘗試:

var e = document.getElementById("ipAddr"); 
var ip = e.value; 

這應該讓IPADDR的值,如果,當然,已經有IPADDR的內在的東西。否則這將仍然返回null。

+0

我想行'var ip = $(「#ipAddr」)。val();'也是一樣的。無論如何嘗試過,並沒有奏效。 – anirudh

+0

然後你的輸入標籤是空的,這意味着你應該做一個觸發器,只有當你試圖獲得它至少有內部東西的時候纔會得到它的值。在觸發需要該值的函數之前,嘗試製作按鈕和$()。click函數。這樣你就可以確定它已經被填滿了。 –

+0

我點擊之前在文本框內輸入了值,並且能夠獲取日誌中的值 – anirudh