动态添加的文本框在DOM中无法访问/未添加

时间:2015-05-25 18:35:29

标签: javascript jquery html dom asp-classic

我写了一个小代码,动态地在页面上添加文本框。并且能够做到。

但是当我试图访问DOM中的这些元素以添加到数据库中时出现了问题。尽管文本框在屏幕上并且也显示在F12(Inspect Element)中,但是当我尝试查看源时,令人惊讶的是它们不在源头中。

因此,为了检查其有效性,我在屏幕中添加了一个硬编码的文本框,并再次检查相同。这次硬编码的文本框显示在屏幕上,但动态添加的文本框不是。

这导致我出现问题,因为当我试图保存这些框的值时,我无法将它们保存在数据库中。

这是我的代码。

   <html>
<body>

<div id ='div1' style="margin-bottom:6px;">
<input name="cust_name_a" id="cust_name_a" value="" type="text" size="0" class="FormTextField" maxlength="6" title="">
    <input name="cust_name_hid" id="cust_name_hid" value="">

</div>
<button onclick="myFunction()">Change link</button>

<script>
var i = 0;
function myFunction() {
//var p_strContents = '<input name="cust_name_0" id="cust_name_0" value="" //type="text" size="0" class="FormTextField" maxlength="6" title="">';
var p_strContents = document.createElement('input');
p_strContents.setAttribute('type', 'text');          
p_strContents.setAttribute('name', 'cust_name_' + i);
p_strContents.setAttribute('id', 'cust_name_'+i);
p_strContents.setAttribute('value', '');
p_strContents.setAttribute('size', '0');
p_strContents.setAttribute('class', 'FormTextField');
p_strContents.setAttribute('maxlength', '6');
p_strContents.setAttribute('title', '');
document.getElementById('div1').appendChild(p_strContents);
i++;
document.getElementById('cust_name_hid').value= i;
    }
</script>

</body>

</html>

您可以通过运行代码来检查相同内容,通过按钮单击添加文本框并检查F12和查看源。

添加和编辑代码

Dim counter, inputval , i 
i=0
counter = Request.Form("cust_name_hid")


Do While i>10
   inputval = Request.Form("cust_name_" & i)
    'Insert Code 
  i = i+1
Loop

1 个答案:

答案 0 :(得分:0)

您的asp循环不正确:

Do While i>10
  inputval = Request.Form("cust_name_" & i) 
  i = i+1
Loop

i大于10时。代码中的值绝不会大于10.

Do While i<10

这肯定会更好。