Javascript WordPress自定义小部件图像选择器-保存按钮已禁用

Javascript WordPress自定义小部件图像选择器-保存按钮已禁用,javascript,php,wordpress,wordpress-theming,Javascript,Php,Wordpress,Wordpress Theming,我正在尝试创建一个自定义WordPress小部件,让用户选择图像、链接和标题。小部件将在侧边栏中显示为广告图像。 代码如下: PHP: 问题: 在WordPress站点的管理区域中,当我选择一个图像或删除一个选定的图像时,小部件的保存按钮没有启用,它没有检测到图像输入字段的值更改。我什么都试过了。我不知道是什么问题。在浏览了WordPress文件PHP和JS之后,我发现了一个函数,它似乎负责使用Ajax请求保存小部件 地点: website-root\wp-admin\js\widgets.js

我正在尝试创建一个自定义WordPress小部件,让用户选择图像、链接和标题。小部件将在侧边栏中显示为广告图像。 代码如下:

PHP:

问题:


在WordPress站点的管理区域中,当我选择一个图像或删除一个选定的图像时,小部件的保存按钮没有启用,它没有检测到图像输入字段的值更改。我什么都试过了。我不知道是什么问题。

在浏览了WordPress文件PHP和JS之后,我发现了一个函数,它似乎负责使用Ajax请求保存小部件

地点:

website-root\wp-admin\js\widgets.js
它在窗口对象上定义了一个名为wpWidgets的对象,以便全局可用。 在第529行,wpWidgets定义了一个具有此签名的函数:

save : function( widget, del, animate, order ) { ... }
widget参数是一个带有widget类的div元素

因此,在我的JavaScript中,我这样调用它来手动保存小部件:

wpWidgets.save( input_element.closest('div.widget'), 0, 1, 0 );
遇到了同样的问题。 最后,我使用JavaScript在更新输入框的同一个函数中更改管理页面上“保存”按钮的值和状态

var save_Button = document.getElementById("widget-downloader_widget-2-savewidget");
save_Button.disabled = false;
save_Button.value = "Save";
这可能不是最好的解决方案,但只是在更新图像url的JS函数中启用save按钮对我来说很有效

wpWidgets.save( input_element.closest('div.widget'), 0, 1, 0 );
var save_Button = document.getElementById("widget-downloader_widget-2-savewidget");
save_Button.disabled = false;
save_Button.value = "Save";