今晚遇到一个关于Div弹出层取值的难题了……在一个页面上,设置一个隐藏的DIV层,在需要使用的时候才使用jQuery代码弹出。然而这个Div弹出层的文本框的值是无法获取到的,另外在script标签里写的代码也是无法选中控制这个弹出层里的控件的。
面对这个问题,我尝试了以下几种方法都获取不了这个可恶的值,无奈上网找了一些方法同样没能解决。
1、在script标签里用jQuery的属性选择器取Div弹出层里的控件,然后alert弹出信息框测试。(无效)
2、在script标签里用JavaScript的通过元素ID名字取值来选中div弹出层里的控件,然后alert弹出信息框测试。(无效)
3、在script标签里写一个取Div弹出层文本框值的方法,在Div弹出层的控件里写脚本语言调用script标签里的方法,可调用,但同样取值不了。(无效)
……
从以上测试可发现,Div弹出层内部的脚本语言是可执行的,但是外界的脚本语言控制不了本体的控件。也就是这个Div弹出层的控件无法被外界直接找到!
【解决方法】利用内部脚本语言获取当前控件的值再进行传值即可
【更优解决方案】在jQuery取值时,先从外界找到弹出层,再找弹出层里的控件就行了!
Script标签的代码块如下:
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript"></script>
function getValue(value){
alert("Div弹出层的值为:" + value);
}
function alert(){
alert("弹框测试!");
}
$(function(){
$("#text").blur(alert); //这样是无法弹框的
$("#pop #text").blur(alert); //这样即可弹框
})
<script type="text/javascript" src="jquery-1.8.3.js"></script>
Div弹出层的控件如下:
<div id="pop"> <!---- 假设这个是Div弹出层 ---->
<input type="text" id="text" οnblur="var value=this.value;getValue(value);" />
</div>
<!---- 第一次发帖,大家多多支持咯 ---->
本人技术有限,文笔也不太好,大家就凑合着看吧。哪位大神有更优解决方案的,欢迎指出哈!