trigger('change') not working

时间:2018-07-11 作者:Divjot Singh

我正在使用wp。用于将图像导入自定义程序的媒体模式附件API。除了这些图像,我还导入了它们的元数据(标题、描述、Alt文本等)。这些字段以自定义程序中的输入字段的形式存在。您可以查看Customizer屏幕截图here.

现在,我希望用户能够使用“发布”按钮进行更改并保存附件详细信息字段。由于我在jQuery环境中工作,因此我尝试使用trigger(\'change\') 但我不能做到。这是触发更改事件的代码-

jQuery(\'.container input\').on( \'input\', function() {
        jQuery(this).trigger(\'change\');
    });
这里,我将触发器事件绑定到输入字段中的更改。

在PHP方面,当标题和描述已经存在时,我不得不为幻灯片URL和CTA按钮创建两个自定义字段。Here 函数是否已过滤attachment_fields_to_edit. 显然,还使用了相应的过滤器来保存值。

为了在自定义程序上显示它,我创建了一个自定义控件。Here 是该代码的渲染部分。$id 是一个字符串,包含由逗号分隔的各种附件的ID。

我在某种程度上知道,保存附件详细信息的方法是错误的,但无法确定确切的错误。任何帮助都将不胜感激。

此外,如果这不是在Customizer中保存附件详细信息的方法,欢迎向正确方向提供任何帮助。

1 个回复
最合适的回答,由SO网友:mmm 整理而成

要使用自定义控件,需要将具有特殊属性的字段链接到“发布”按钮。

如果不想显示此字段,可以生成如下隐藏字段:

class WP_Test_2_Customize_Control extends WP_Customize_Control
{

    public function render_content()
    {

        ?>

            <input
                id="<?php echo htmlspecialchars("_customize-input-{$this->id}");?>"
                type="hidden"

                <?php $this->input_attrs();?>

                <?php if (!isset($this->input_attrs["value"])) {?>
                    value="<?php echo htmlspecialchars($this->value());?>"
                <?php }?>

                <?php $this->link();?>
            />

        <?php

    }


}
然后,当您修改其他字段中的值时,使用JavaScript将值放入该字段,然后触发change 此隐藏字段上的事件。

结束

相关推荐

使用AJAX发出POST请求会返回400错误(不使用jQuery)

该网站有一个带有搜索字段和类别复选框的博客页面。搜索某个内容或选中/取消选中某个类别会启动AJAX请求,以根据搜索/类别获取帖子,然后将这些结果填充到页面上的列表中。Currently this functionality works with jQuery, but my attempts to write it in plain JS are failing with 400 errors.以下是对此的jQuery:$.ajax({ url: Knuckle.ajaxurl,