在javascript中获取动态文本框的值

时间:2014-06-08 19:05:18

标签: javascript jquery

我在运行时使用javascript动态创建一个文本框,并使用href(也在运行时与文本框一起创建)将其值传递给我的servlet页面,但不知何故,该值被传递为" Null& #34 ;.我不明白为什么..任何人都可以帮我这个吗?

这是我的javascript代码:

//here I am creating textbox
var td1 = document.createElement("TD");
var strHtml1 = "<INPUT TYPE=\"text\" NAME=\"in_name\" id =\"in_nm\" SIZE=\"18\"  STYLE=\"height:24;border: 1 solid;margin:0;\">";
td1.innerHTML = strHtml1.replace(/!count!/g, count);

//Here I am fetching its value
var nm=document.getElementById("in_nm");//this value is being passed null

//Here I am passing it through a href tag 
var strHtml3 = "<a id=\"link\" href=\"UserHandler?action=insert&&name="+nm+"\">Add Row</a>";
td3.innerHTML = strHtml3.replace(/!count!/g, count);
var dt=document.getElementById('in_dt');

3 个答案:

答案 0 :(得分:0)

您永远不会将HTML字符串放入文档中,因此无法从文档中获取它。

答案 1 :(得分:0)

您创建的DOM从未被放置在文档中,因此您无法捕获它。 另外,如果你不情愿地抓住元素,它将一直是空的。

您可以将输入字段作为隐藏附加到正文,然后再获取它。

strHtml1.style.display = 'hidden';
document.body.appendChild(strHtml1);
// At this point the dom is in the HTML and it is not visible and now you can use it.

在获取值之前添加它。

答案 2 :(得分:0)

对于那些面临与我类似问题的人,我发布了他们的参考解决方案

通过获取值on on并通过ajax传递请求来解决问题:

$(".edit_trr").click(function() //edit_trr is my class of the dynamic row added
            {

            }).change(function()
            {
                var nam=$("#in_name").val(); //in_name is my id of the textfield
                var datastr='name='+nam;
                if(nam.length >0) //checks if there is value in textfield
                {
                    $.ajax({
                        type: "POST",
                        url: "add.jsp", //link of my jsp page where data is added in database
                        data: datastr,
                        cache: false,
                        success: function(html)
                        {
                            alert('Inserted');
                        }
                    });
                }
                else
                {
                    alert('Enter Something');
                }
            }); 

在JSP页面请求发送可以简单地获取为:

 request.getParameter("name");