用javascript动态添加一个控件,比如checkbox, 无法获取该控件。

用javascript动态添加一个控件,比如checkbox, 无法获取该控件。,第1张

老朽的IE6, 用这种办法name属性加不上去,其他任何浏览器你的代码都是没问题的,对于IE6,只能是

eventtable = document.getElementById('eventTable')

eventtable.insertRow(-1)

newTd = eventtable.rows[eventtable.rows.length-1].insertCell(-1)

newTd.innerHTML = "<input type='checkbox' name='eventContentDelete' id='eventContentDeleteID' />"

alert(document.getElementsByName('eventContentDelete').length)

你好,

如题描述的结果是必然的。

首先,你需要明白两个问题:第一,js浏览器端脚本,执行在服务端内容响应成功之后,它的appendChild方法,只是在浏览器中进行了 *** 作,并未向服务器发送保存请求(命令);第二,当你刷新页面的时候,你实际上是通过浏览器向服务器发送了一个请求,而当请求完成后你看到的界面是从服务端返回来的,并不是由浏览器直接产生。

明白了这两点,我给你举个例子说明下:

我们假设服务端有一个html文件,名为index.html,它包含题中所述的那段js

当你刷新页面的时候,index.html 的内容被请求到了浏览器,这时浏览器将它的内容显示给你

当页面显示完成(这里要看你js的位置或调用方式)之后,客户端js开始执行,将button添加到浏览器显示的内容中

而这时,服务器上index.html文件的内容并没有发生改变

所以当你再次刷新,从服务器取index.html的时候,页面内容就恢复到最初状态了。

希望说清楚了,如有疑问欢迎追问,望采纳~

<div id="put_box">js动态添加的控件在这里

<input /><input />

</div>

<asp:button onclientclick="getCount()" ...>

<input id="hd_count" type="hidden" runat="server" />

<script>

function getCount(){

document.getElementById("hd_count").value = document.getElementById("put_box").getElementsByTagName("INPUT").length

}

</script>

.cs

int count = int.Parse(hd_count.Value)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7914412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存