在尝试获取jquery对话框中的文本框的值时获取“null”

时间:2014-03-26 15:20:41

标签: javascript jquery

我正在尝试使用其ID获取我在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" );

    });
});

我正在尝试使用返回null的行ipAddr获取标识为var ip = $("#ipAddr").val();的文本框的值。

2 个答案:

答案 0 :(得分:0)

尝试:

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

这应该得到ipAddr的值,当然,如果ipAddr中已经存在某些内容。否则这仍将返回null。

答案 1 :(得分:0)

我弄明白了这个问题。在我获得该div中文本框的值之前,我使用#printLabelDialog$( this ).html(ajax_load);的值设置为gif图像,因此我收到错误。

感谢大家的帮助。