正在验证自定义元框值和必填字段

时间:2010-09-12 作者:NetConstructor.com

我从未见过的内容是验证自定义post类型元框的特定表单字段是否正确填写的最佳方法。

我希望获得专家意见,了解如何最好地验证可能创建的任何元数据库的自定义字段。我的兴趣是:

确保在发布/更新帖子之前进行字段验证,使用与其他wordpress javascript不冲突的类/代码,您可以根据需要定义特定字段,而其他字段可以是可选的,根据自定义规则验证字段,包括电子邮件格式等的regex控制任何错误/通知提前感谢!

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

最简单的方法是通过jQuery Validate plugin. 以下是最基本的演练:

在add\\u meta\\u box调用附近,将jQuery验证插件以及简单脚本的JS文件排队:

add_action(\'admin_enqueue_scripts\', \'add_my_js\');   
function add_my_js(){    
  wp_enqueue_script(\'my_validate\', \'path/to/jquery.validate.min.js\', array(\'jquery\'));
  wp_enqueue_script(\'my_script_js\', \'path/to/my_script.js\');
}
然后在my\\u脚本中。js包括以下内容:

jQuery().ready(function() {
    jQuery("#post").validate();
});
这将启用对post表单的验证。然后在定义自定义字段的add\\u meta\\u回调框中,为要验证的每个字段添加一个“required”类,如下所示:

<input type="text" name="my_custom_text_field" class="required"/>
保存/发布/更新帖子时,将验证其类中带有“required”的所有字段。可以在文档中设置所有其他验证选项(规则、错误样式等)。my\\u脚本中的ready函数。js;检查jQuery验证文档中的所有选项。

SO网友:Ijas Ameenudeen

添加jQuery验证的完整基本代码:

验证脚本排队。我想jQuery已经被授权了。

add_action(\'admin_enqueue_scripts\',function($id){
    $validation\',$validation_js_url = #your validation.js source;
    wp_register_script( \'validation\',$validation_js_url,array(),\'\',true );
    wp_enqueue_script( \'validation\' );
});
在js文件或脚本标记中:

jQuery(document).ready(function($){
    var form = $("form[name=\'post\']");
    $(form).find("input[type=\'submit\']").click(function(e){
        e.preventDefault();
        $(form).validate();

        if($(form).valid())
        {
            $("#ajax-loading").show();
            $(form).submit();
        }else{
            $("#publish").removeClass().addClass("button-primary");
            $("#ajax-loading").hide();
        }
    });
});
完成:)

SO网友:Ricky

我使用了这段代码,非常有用,只是做了一些修改:

$(form).find("input[type=\'submit\']").click(function(e){
收件人:

$(form).find("#publish").click(function(e){
\'因为如果主窗体中有另一个窗体,则会启动脚本。

以及:

$(form).submit();
收件人:

$(this).submit();
\'因为第一行只将文章另存为草稿,您不能再发布它了。

在这里写下所有内容:http://allgraphics.it/blog/2012/10/jquery-validation-sui-campi-di-input-postcustom-post-di-wordpress/

SO网友:Julio Garcés Teuber

我发现这种方法可以解决使用PHP代码验证metabox字段的问题

https://tommcfarlin.com/post-meta-data-error-messages/

希望这对您有所帮助(在类似的情况下对我有效)

SO网友:doublesharp

如果希望能够验证服务器端,最简单的选项是使用Advanced Custom Fields 定义自定义字段布局,然后Validated Field 用于在WordPress Admin中设置每个字段的验证的加载项。

结束

相关推荐

测试jQuery或Prototype是否由另一个插件排队?

在我的插件中,我想测试jQuery或Prototype(或两者)是否将由另一个插件加载。所以,有wp_enqueue_script(\'jquery\') 或wp_enqueue_script(\'prototype\') 已调用。我在文件中有适合我的插件的代码plugin.prototype.js 和plugin.jquery.js 如果原型已排队,我的插件将使用plugin.prototype.js. 这样我就避免了在站点中加载不必要的内容。如果两者都没有加载,我将排队,以较小者为准。如何测试以查看已