-1

我不明白为什么这个内部 html 脚本不起作用。我在 jsFiddle 上发布了 javascript。你可以在这里看到它:http: //jsfiddle.net/JyV73/1/

我有两个版本的链接。首先,重写链接位于需要关闭的弹出窗口中,另一个在文本区域中使用正确的文本打开。

在第二个中,页面上只有一个链接,当点击它时,应该希望在 wht textarea 中打开带有正确文本的弹出窗口。

唯一的问题是它不适用于第二个版本,因为我必须关闭弹出窗口。如果我先注释掉,document.getElementById(id).style.display = 'none'那么普通链接就可以工作,所以我的第一个想法是创建两个函数。但是由于这个 javascript 是包含的 php 模板文件的一部分,我认为使用纯 javascript 解决这个问题在 php 代码上会更简单。

我仍在学习 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;
}
4

2 回答 2

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')") 来写入文本框。:)

于 2013-04-25T20:17:42.700 回答
0

我并不完全清楚您在这里要做什么,但是从我阅读您的代码的方式来看,您希望将文本区域的值设置为特定值。

这是你如何做到的:http: //jsfiddle.net/JyV73/9/

function rewrite(id, text) {
    $('#new-text').val(text);
}

您不是在使用弹出窗口,而是在使用模式,这意味着它是页面内的一个 div,用于切换可见性。您可以从这些组件访问信息,无论它们是否可见,仅供参考。

不过,我并不完全确定您在这里要做什么。

于 2013-04-25T20:31:26.943 回答