【问题标题】:change textarea value doesn't work更改 textarea 值不起作用
【发布时间】:2010-10-18 16:10:50
【问题描述】:

所以,我要做的是在 wordpress 管理新帖子页面中添加一个 Javascript sn-p,这样当我单击一个按钮时,它会填满帖子正文所在的 CONTENT 文本区域。添加它不是问题,我已经这样做了,但是由于某种原因填充内容字段不起作用。

wordpress 管理页面的文本区域是:

<textarea rows='10' class='theEditor' cols='40' name='content' tabindex='2' id='content'></textarea>

我还尝试填写 POST_TITLE 输入,它工作正常。我知道问题可能来自 wordpress 的内容字段的 JS 脚本,因为它不是一个简单的文本区域,它是一个 JS 文本编辑器。有什么建议? 而 JS sn-p 是:

<script type="text/javascript">

    $("form").submit(function(){
        $("input[name$='post_title']").val("a letter");
        document.getElementById('content').innerHTML = "testing";
        return false;
    });

</script>

PS:jquery 库已经包含

【问题讨论】:

  • 您只需将.innerHTML 更改为.value。它应该工作:)
  • 试过了,正如我所说,它适用于该表单中的其他文本区域,但它不适用于内容文本编辑器,它实际上是一个链接到一些 javascript 脚本的文本区域

标签: javascript jquery wordpress


【解决方案1】:

使用.val() 设置(或获取)输入类型元素的值,包括&lt;textarea&gt;&lt;select&gt;,如下所示:

$("form").submit(function(){
    $("input[name$='post_title']").val("a letter");
    $('#content').val("testing");
    return false;
});

【讨论】:

  • @flowerpower - 你收到 JavaScript 错误了吗?尝试将上述所有代码包装在 (function($) { ...above code... })(jQuery); 块中,WordPress 通常在 jQuery 包含上使用 .noConflict()
  • 不,我没有收到任何错误,我将所有代码都包含在您给我的代码中,但一点运气都没有。
  • @flowerpower - &lt;form&gt; 是动态添加到页面的吗,例如通过 ajax?
  • 不,它就在
  • @flowerpower - 是否有可能有多个 id="content" 元素?这真的听起来像你的症状。
【解决方案2】:

您不应该混合使用 jQuery 和标准 dom 调用吗?试试这个:

$("#content").text("hi");

从 Firebug 控制台对我来说工作得很好。

更新:抱歉各位,错过了我们正在讨论的 TinyMCE 部分。以下是用于更新隐藏文本区域和可视化编辑器本身的代码:

jQuery("#content").text("Your text goes here");
tinyMCE.activeEditor.execCommand('mceSetContent', false, jQuery("#content").text());

欲了解更多信息,请查看TinyMCE Commands API

【讨论】:

  • 很抱歉,错过了您说您使用可视化编辑器工作的部分。更新了帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2013-05-17
相关资源
最近更新 更多