我无法理解为什么这个内部html脚本无效。我在jsFiddle上发布了javascript。你可以在这里看到它:http://jsfiddle.net/JyV73/1/
我有两个版本的链接。在第一个中,重写链接位于需要关闭的弹出窗口中,另一个在textarea中使用正确的文本打开。
在第二个页面上,页面上只有一个链接,当它被点击时,应该希望在wht textarea中打开带有正确文本的弹出窗口。
唯一的问题是它不能用于第二个版本,因为我必须关闭弹出窗口。如果我先注释掉document.getElementById(id).style.display = 'none'
,那么普通链接就可以了,所以我的第一个想法是创建两个函数。但由于这个javascript是包含的php模板文件的一部分,我认为在PHP代码上使用纯JavaScript来解决这个问题会更简单。
我还在学习javascript,任何帮助都会受到赞赏。我希望我很清楚。非常感谢你。
HTML
<a href="#popup" rel="popup">open</a>
<div id="popup" class="popup"> <a href="#new" rel="popup" onClick="rewrite('popup', 'blah')">Rewrite</a>
</div>
<div id="new" class="popup">
<textarea id="new-text"></textarea>
</div>
<!-- This is the stuff that doesnt work for some reason <a href="#new" rel="popup" onClick="rewrite('popup', 'blah')">Rewrite</a>
<div id="new" class="popup">
<textarea id="new-text"></textarea>
</div>
-->
Javascript
function rewrite(id, text) {
document.getElementById(id).style.display = 'none';
document.getElementById('new-text').innerHTML = text;
}
答案 0 :(得分:1)
我并不完全清楚你要在这里做什么,但从我读取代码的方式来看,你想要将文本区域的值设置为特定值。
这是你如何做到的:http://jsfiddle.net/JyV73/9/
function rewrite(id, text) {
$('#new-text').val(text);
}
你没有使用弹出窗口,你正在使用模态,这意味着它是一个切换可见性的页面内部的div。您可以访问这些组件中的信息,无论它们是否可见,fyi。
尽管如此,我还不完全确定你在这里要做什么。
答案 1 :(得分:0)
我将document.getElementById('new-text').innerHTML = text;
更改为document.getElementById('new-text').value = text;
,因为它是您要设置的文本框的value
属性。
页面上带有ID的每个元素都需要有一个唯一的ID(看起来你可能一直试图重用ID,但也许我错了!)
我仍然没有确切地知道你想要实现的目标,但无论如何都需要 。
此代码足以实现您的第二个目标:http://jsfiddle.net/JyV73/19/
我在您的“打开”链接中添加了onClick
属性(onClick="rewrite('popup', 'blah')"
)来写入文本框。 :)