使用AJAX响应填充表单域

时间:2017-04-06 作者:shanebp

我需要用ajax响应中的post\\u meta填充表单字段。

一切正常。

我可以硬编码每段数据的交换。meta进入其表单字段。但这种方法是不可重用的。

是否有一种方法可以循环浏览数据。改为meta?

在某些情况下,可能没有针对所有表单字段的meta。在某些情况下,可能存在不适用于表单的元。

这适用于引导模式窗口中的窗体。

$.ajax({

    ...

    success: function (data) {

        if (data.status === \'success\') {

            $(\'#title\').val(data.title);

            $.each(data.meta, function(key,value) {

                  alert(key + \'---\' + value[0]); 

                  // if key is a form element, add the value to that element

                  // if key is a form element that is a select dropdown, 
                  //  then mark that option as selected

            });

        }
    }
});

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

这对我来说是可行的,并且是可重用的。它假定表单字段ID与post\\u元键匹配。

if (data.status === \'success\') {

    // populate form with post_meta
    $.each(data.meta, function(key,value) {

        //alert(key + \'---\' + value[0]);

        var $form_element = $("#" + key);

        if ( $form_element.length > 0 ) {

            // check if $form_element is a selector
            if( $form_element.prop(\'type\') == \'select-one\' ) 
                modal.find($form_element).val(value).change();
            else
                modal.find("#" + key).val(value);
                //modal.find($form_element).val(value);


        }

    });

}

SO网友:Mark Kaplun

首先,我可以用一根手指数一数,一个希望“可重用”的代码实际上被重用了多少次。根据您可以测试的规范编写代码。“可重用”不是一个可以测试的规范,除非你对未来需要什么有一个正确的想法,对于那些不是未来预言家的人来说,威尔总是很难做到;)

其次,这意味着所有元数据都应该可以从外部查询,这是一个安全/隐私噩梦,因为您将有一个端点,可以用来查询可能永远不会公开显示的隐私数据。顺便说一句,这就是您需要显式选择元字段以便能够在REST API中使用它们的原因。

相关推荐

JqueryUi对话框给出未捕获的TypeError:This._addClass不是函数错误

我有一个网站,我们需要一些自定义php编码来连接到外部数据库,以获取几个销售我们产品的供应商的产品评论URL。我们试图实现的基本想法是让用户注册他们的产品,然后如果他们愿意留下评论,就延长保修期。我正在使用XYZScript。com的“插入PHP”插件来实现这一点。该主题最初只加载了jQuery,以避免创建子主题,我们正在php脚本中加载jQueryUI。因此,我们将jQuery加载到文档的标题中,将jQueryUI加载到文档的正文中。我不太确定这是因为加载脚本的顺序造成的,还是其他一些冲突的javasc