【问题标题】:How to populate a related field on selection of a choice field in inline formset如何在选择内联表单集中的选择字段时填充相关字段
【发布时间】:2019-09-06 02:23:07
【问题描述】:

我正在开发一个内联表单集,其中:

一个。用户将首先填写标题数据

b.接下来,在内联部分中,用户选择一个选择字段(产品名称),我希望此操作触发使用相关表(FK 关系)中的值填充其他字段。相关字段将包含相关字段中的定价项目等信息。

我希望这基本上有助于用户接受(即无需单击其他按钮)。

我尝试了一些来自网络的示例(例如使用查询填充价格字段),但我无法从下拉列表中捕获用户对产品的选择。尝试了 JQuery,但我真的无法解决。

我如何做到这一点?

上述问题已在一段时间前发布。

从那以后,我在当时的情况下取得了一些进展。

我目前的困境如下所述(希望有一些解决方案):

1.我现在可以为每个表单集元素动态添加“类”和“id”,以便在操作用户输入时访问它们。

2.我正在使用.on('focusout', ...) 来捕获用户输入(包括选择)。

3。我正在计算每一行的项目数量,如下所示:

    matl_price=0   // Price field id: "id_tIndx14"
    matl_qnty = 0  // Quant field id: "id_tIndx16"
    item_amount=0  // Amount field id: "id_tIndx17"

    $(document).on("focusout", "#id_tIndx14", function() {
        matl_price = $('#id_tIndx14 input').val();
    });

    // THIS IS CALCULATES THE ITEM AMOUNT::
    $(document).on("focusout", "#id_tIndx16", function() {
        matl_qnty = $('#id_tIndx16 input').val();
    // Next calculate the amount (=Price * Quant)::

    item_amount = matl_price * matl_qnty

    // Appending the Amount field with the resultant "item_amount"
    $("#id_tIndx17").append(item_amount)

    });

但是,如下所示,表格字段“金额”中的附加值不会更新:

可以看出,金额 (1600) 位于“金额”字段之外。

4. 我将“金额”字段保留为“只读”。后来由于金额值落在输入字段之外的问题,我已经删除了该属性。但这对最终结果没有影响(金额值仍在字段之外)。

5.我正在从外部 *.js 文件(在应用程序路径中)访问 jQuery 代码。

我可以请人帮忙吗?

【问题讨论】:

  • 你能分享一些你试过的代码吗?
  • $("[name=$'product']").on("change", function() {}) 是您将事件处理程序添加到所有选择的方式
  • @IainShelvington - 如果我使用“.text”或“.html”代替“.append”,则结果值在“Amount”字段的行中,但该值再次呈现为纯文本和字段(文本框)丢失。我也试过 .val" 但是根本没有显示任何数据。如何获取文本框中呈现的金额字段值?

标签: jquery django eventtrigger inline-formset


【解决方案1】:

很久以来我一直在逃避它。遗憾的是,我在网络上找不到这个解决方案(甚至在 jquery site 上也找不到)。

经过大量的排列组合,我终于找到了金子!!我以这种方式填充 input 字段:

$('#id_tIndx17 input').val(item_amount);

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2020-07-23
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多