我写了一个小代码,动态地在页面上添加文本框。并且能够做到。
但是当我试图访问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
答案 0 :(得分:0)
您的asp循环不正确:
Do While i>10
inputval = Request.Form("cust_name_" & i)
i = i+1
Loop
当i
大于10时。代码中的值绝不会大于10.
Do While i<10
这肯定会更好。