<form id="form1" runat="server">
<input type="button" value="弹出" id="inside" />
<div id="Dialog" style="">
<input type="text" id="text1" value="" name="text1"/>
<input type="text" id="text2" value="" />
<input type="button" value="提交" onclick="sys()" />
</div>
<script type="text/javascript">
$(document).ready(function () {
//内嵌弹出层调用
$('#inside').click(function () {
$.webox({
height: 280,
width: 600,
bgvisibel: true,
title: '内嵌弹出层调用',
html: $("#Dialog").html()
});
});
})
</script>
<script type="text/javascript">
function sys() {
alert($("#text1").val());
}
</script>
</form>
求大神解答,这个问题困扰了小弟很久了,刚接触jquery ,弹出的第三方窗口,输入文本框的值死活都获取不到.求解救方法.再此先谢过了.jqueryhtml
如果是使用了iframe那就与你取值的作用域分属不同的dom作用域。
所以取不出来。
查看是否使用了iframe可以通过浏览器自带的开发调试工具进行查看
没有使用iframe ,就是用的第三方弹出窗口插件调用当前页面这个层,代码贴上面一看就清楚了,如果text给了默认值就能取出来,但是就是取不到弹出层以后的值.
<script type="text/javascript">
$(document).ready(function () {
//内嵌弹出层调用
$('#inside').click(function () {
$.webox({
height: 280,
width: 600,
bgvisibel: true,
title: '内嵌弹出层调用',
html: $("#Dialog").html()
});
});
})
</script>
这段JS就是引用第三方弹出窗口调用我当前页面ID为 Dialog 的层,我调试了很多遍,发现当点击弹出按钮会调用 html: $("#Dialog").html()这个参数,就是获取弹出之前这个层里的代码,所以弹出之后在这个层里文本框输入值都获取不到.试过各种办法了.
也就造成你的dom中出现了2个具有id=text1的元素。
而jquery使用id选择器的时候只会匹配第一个匹配的元素。
而你的inside控件在dialog这个层之前。
所以jquery首先匹配到inside控件中的text1元素
所以无论你怎么改变dialog中的text1的值
也没有办法通过jquery取到了。
<input type="text" id="text1" value="" name="text1" class="test"/>
$(".test")[1].value
<input type="text" id="text1" value="" name="text1" class="test"/>
$(".test")[1].value
这种写法还真能行呢,谢谢了啊,朋友.