我在运行时使用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');
答案 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");