基于CKEditor iframe的插件以及如何返回radio值

发布于 2024-12-09 13:00:46 字数 1594 浏览 0 评论 0原文

我使用 CKEDITOR.dialog.addIframe 为 CKEDitor 创建了一个基于 iframe 的插件,并希望用户选择一个单选值,该值将返回到编辑器。我正在使用下面的代码来尝试返回该值。

<form name="form1">
    <label><input type="radio" name="field_name" value="[value one]" id="field_name_0" onclick="return get_radio_value()" />value one</label><br />
    <label><input type="radio" name="field_name" value="[value two]" id="field_name_1" onclick="return get_radio_value()" />value two</label><br />
    <label><input type="radio" name="field_name" value="[value three]" id="field_name_2" onclick="return get_radio_value()" />value three</label><br />
</form>
<script language="javascript">
function get_radio_value()
{
    for (var i=0; i < document.form1.field_name.length; i++)
    {
        if (document.form1.field_name[i].checked)
        {
            var rad_val = document.form1.field_name[i].value;
            //alert(rad_val); //this works using onclick
        }
    }
}

var CKEDITOR = window.parent.CKEDITOR;

var okListener = function(ev) {
   this._.editor.insertHtml('<div class="custom_form">'+rad_val+'</div>');
   CKEDITOR.dialog.getCurrent().removeListener("ok", okListener);
};

CKEDITOR.dialog.getCurrent().on("ok", okListener);
</script>

我也尝试了简单的方法:

var form_value = document.form1.field_name.value;
this._.editor.insertHtml('<div class="custom_form">'+form_value+'</div>');

但这返回了“未定义”

任何帮助或想法将不胜感激?

注意:表单字段值是通过 PHP 动态创建的,并从 MySQL 数据库提供。

I have created an iframe-based plugin for CKEDitor using CKEDITOR.dialog.addIframe and want the user to select a radio value, which will be returned to the editor. I am using the code below to try and return the value.

<form name="form1">
    <label><input type="radio" name="field_name" value="[value one]" id="field_name_0" onclick="return get_radio_value()" />value one</label><br />
    <label><input type="radio" name="field_name" value="[value two]" id="field_name_1" onclick="return get_radio_value()" />value two</label><br />
    <label><input type="radio" name="field_name" value="[value three]" id="field_name_2" onclick="return get_radio_value()" />value three</label><br />
</form>
<script language="javascript">
function get_radio_value()
{
    for (var i=0; i < document.form1.field_name.length; i++)
    {
        if (document.form1.field_name[i].checked)
        {
            var rad_val = document.form1.field_name[i].value;
            //alert(rad_val); //this works using onclick
        }
    }
}

var CKEDITOR = window.parent.CKEDITOR;

var okListener = function(ev) {
   this._.editor.insertHtml('<div class="custom_form">'+rad_val+'</div>');
   CKEDITOR.dialog.getCurrent().removeListener("ok", okListener);
};

CKEDITOR.dialog.getCurrent().on("ok", okListener);
</script>

I also tried the simple:

var form_value = document.form1.field_name.value;
this._.editor.insertHtml('<div class="custom_form">'+form_value+'</div>');

but this returned "undefined"

Any help or ideas would be appreciated?

Note: Form field values are dynamically created via PHP and fed from a MySQL database.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文