提问人:Java Broker 提问时间:11/2/2023 更新时间:11/2/2023 访问量:32
自定义字段的 WordPress jQuery 空输入值
WordPress jQuery empty input value for a custom field
问:
我试图使用 JS 获取自定义帖子类型的自定义帖子字段的输入值,但没有成功。检查 jQuery 对象时,没有 value 属性。 该代码在 WordPress 之外工作,甚至适用于不同的输入,即核心 WP 标题输入字段。最终目标是使用 Ajax 检查数据库中是否存在值。
遵循以下示例:https://developer.wordpress.org/plugins/metadata/custom-meta-boxes/#client-side-code
jQuery v3.4.1 中, WP v6.3版本
自定义元框输入字段 HTML:
<input type="url" name="myprefix-item-url" id="myprefix-item-url" value="" style="width: 100%;">
核心 WP 标题输入字段 HTML:
<input type="text" name="post_title" size="30" value="" id="title" spellcheck="true" autocomplete="off">
WSG集团
// wp-content/plugins/my-plugin/admin/meta-boxes/js/admin.js
(function ($, window, document) {
'use strict';
// execute when the DOM is ready
$(document).ready(function () {
// NOTE: works for #title
$('#myprefix-item-url').on('change', function () {
const userInput = $(this).val();
console.log('input:', userInput);
});
});
}(jQuery, window, document));
PHP格式:
// wp-contents/plugins/my-plugin/my-plugin.php
function myprefix_meta_box_scripts() {
// get current admin screen, or null
$screen = get_current_screen();
// verify admin screen object
if (is_object($screen)) {
// enqueue only for specific post types
if (in_array($screen->post_type, ['myprefix_item'])) {
// enqueue script
wp_enqueue_script('myprefix_meta_box_script', plugin_dir_url(__FILE__) . 'admin/meta-boxes/js/admin.js', ['jquery']);
// localize script, create a custom js object
wp_localize_script(
'myprefix_meta_box_script',
'myprefix_meta_box_obj',
[
'url' => admin_url('admin-ajax.php'),
]
);
}
}
}
add_action('admin_enqueue_scripts', 'myprefix_meta_box_scripts');
控制台中的结果:
input:
JsFiddle:
(function ($, window, document) {
'use strict';
// execute when the DOM is ready
$(document).ready(function () {
$('#myprefix-item-url').on('change', function () {
const userInput = $(this).val();
console.log('url:', userInput);
});
});
}(jQuery, window, document));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="url" name="myprefix-item-url" id="myprefix-item-url" value="" style="width: 100%;">
请帮我了解发生了什么
答: 暂无答案
评论
$('#myprefix-item-url')
console.log($('[id="myprefix-item-url"]').length)
$("#id").on("change", function...
$(document).on("change", "#id", function...