Drupal 7 - 创建依赖的自动填充表单字段

时间:2012-08-17 00:59:34

标签: forms drupal autocomplete drupal-7

我想知道是否有人可以帮助我更新此处详细说明的代码(http://oif.eafarris.com/blog/pre-fill-cck-node-fields-based-on-a-node-re ...)对于Drupal 7.该帖子中描述的功能与我在Drupal 7网站上要做的功能完全相同,但我不是很熟悉,而且我自己也不是很精通。

我有一个内容类型事件。在Event的节点创建表单中,我有一个“Client”的自动填充字段。下面是名称,地址等的附加字段。我希望在这里实现的最终结果是:

  1. 用户在自动填充客户端字段中输入客户名称。

  2. 输入的客户名称与现有客户端匹配并被选中。

  3. 使用所选客户端的节点ID,然后会自动填充地址字段。

  4. 我有一个带有nid参数的JSON视图,该视图会在网址http://domain.com/json-clients/[nid]中显示必填字段。但我无法将该信息返回到表单上的正确字段。

    下面是代码,因为我已经修改了它,试图让它与D7一起使用。有人看到明显的错误并小心协助吗?

    (function ($) {
        Drupal.behaviors.sponsorhelper = function () {
            $("input[name='field_client[und][0][nid]']").blur(function() {
    
                nidRegEx = /\[nid:(\d+)\]/;
    
                SponsorHelper.fill($(this).attr('value').match(nidRegEx)[1]);
    
            })
        };
    
        SponsorHelper.fill = function(nid) {
            var url = Drupal.settings.basePath + 'json-clients/' + nid;
    
            jQuery.getJSON(url, function (data, result) {
                if (result != 'success') {
                    return;
                }
    
                $("input[name='field_address_1[und][0][value]']")
                    .attr('value',data.nodes[0].node.field_address_1_value);
    
                $("input[name='field_address_2[und][0][value]']")
                    .attr('value',data.nodes[0].node.field_address_2_value);
            })
        };
    })(jQuery);
    

    非常感谢任何帮助。

    感谢。

1 个答案:

答案 0 :(得分:0)

不要编写自己的javascript尝试使用几个drupal的社区模块来处理它。查看: http://drupal.org/project/conditional_fields http://drupal.org/project/computed_field/

您可以使用条件字段隐藏地址,直到放入客户端信息。然后使用计算字段搜索客户端并自动填充地址字段。