如何在WordPress发布按钮上添加确认对话框?

4

我正在开发一个WordPress插件,它创建了一种名为“知识库文章”的自定义文章类型,并提供了一些特殊字段。我希望发布按钮在用户提交之前警告他们是否缺少必填字段。我该如何实现?是否有适当的钩子可以插入此行为?

1个回答

5

您可以使用默认情况下包含在所有管理页面中的wp-admin/js/common.js中的基本客户端表单验证脚本。

首先,通过您的插件添加一个在文章编辑屏幕上运行的操作:

add_action('admin_print_scripts', 'my_validation_script');
function my_validation_script() {
    global $post_type;
    if(isset($post_type) && $post_type == 'knowledgebase_article') {
        wp_enqueue_script('my-validation-script', network_site_url() . '/wp-content/plugins/your-plugin-folder/my-validation-script.js', array('jquery', 'common'));
    }
}

接下来,编写小的JavaScript表单处理程序来处理表单提交:
jQuery(document).ready(function(){

    //'my_required_field' is the class name of the DIV or TD tag *containing* the required form field
    jQuery('.my_required_field').addClass('form-required'); 

    //'post' is the ID of the main form on the new post screen
    jQuery('#post').submit(function(){ 
            //the validateForm function lives in wp-admin/js/common.js
            if ( !validateForm( jQuery(this)) ) { 
                    alert('Please enter a value'); 
                    return false; //stop submitting the form
            } else {
                    //alert('all required fields have some input');
            }
    });

});

你可以通过访问标签编辑页面,并创建一个没有名称的新标签,以查看此验证程序的行为。字段的容器会变成红色,以提示问题。
我在我的端上进行了测试,它是有效的。希望它能对你有所帮助。

谢谢您的建议,星期一我到办公室后会尝试一下。 :-) - evbailey
1
这个解决方案非常准确。我不知道为什么我的问题被关闭,理由是“含糊不清”,但你完全明白我在问什么。 - evbailey
我对“模糊”的问题也感到困惑。谢谢你的点赞。 - hardy101

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接