如何在内联表单集中选择选择字段时填充相关字段
How to populate a related field on selection of a choice field in inline formset
我正在处理内联表单集,其中:
一个。用户将首先填写 header 数据
b。接下来,在内联部分中,用户选择一个选择字段(产品名称),我希望此操作触发使用相关 table(FK 关系)中的值填充其他 field/s。相关 field/s 将在相关字段中包含定价项目等信息。
我希望这基本上可以促进用户接受(即无需单击其他按钮)。
我尝试了一些来自网络的示例(例如使用查询填充价格字段),但我无法从下拉列表中捕获用户对产品的选择。尝试过 JQuery 但我真的无法绕过。
我该如何实现?
上面的问题是以前发的。
从那时起,我取得了一些进展,超出了当时的情况。
我目前的困境如下所述(希望有一些解决方案):
1. 我现在可以动态添加 "class and "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)
});
但是,table 字段中的附加值未更新 "Amount",如下所示:
可以看出,金额 (1600) 位于“金额”字段之外。
4. 我将 "Amount" 字段保留为 "readonly"。后来由于金额值落在输入字段之外的问题,我已经删除了该属性。但这对最终结果没有影响(金额值仍在该字段之外)。
5. 我正在从外部 *.js 文件(在应用程序路径中)访问 jQuery 代码。
我可以请人帮忙吗?
我想了很久。遗憾的是,我在网上找不到这个解决方案(甚至在 jquery site 上也找不到)。
经过大量的排列和组合,我不知何故找到了金子!!我以这种方式填充 input 字段:
$('#id_tIndx17 input').val(item_amount);
结果:
我正在处理内联表单集,其中:
一个。用户将首先填写 header 数据
b。接下来,在内联部分中,用户选择一个选择字段(产品名称),我希望此操作触发使用相关 table(FK 关系)中的值填充其他 field/s。相关 field/s 将在相关字段中包含定价项目等信息。
我希望这基本上可以促进用户接受(即无需单击其他按钮)。
我尝试了一些来自网络的示例(例如使用查询填充价格字段),但我无法从下拉列表中捕获用户对产品的选择。尝试过 JQuery 但我真的无法绕过。
我该如何实现?
上面的问题是以前发的。
从那时起,我取得了一些进展,超出了当时的情况。
我目前的困境如下所述(希望有一些解决方案):
1. 我现在可以动态添加 "class and "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)
});
但是,table 字段中的附加值未更新 "Amount",如下所示:
可以看出,金额 (1600) 位于“金额”字段之外。
4. 我将 "Amount" 字段保留为 "readonly"。后来由于金额值落在输入字段之外的问题,我已经删除了该属性。但这对最终结果没有影响(金额值仍在该字段之外)。
5. 我正在从外部 *.js 文件(在应用程序路径中)访问 jQuery 代码。
我可以请人帮忙吗?
我想了很久。遗憾的是,我在网上找不到这个解决方案(甚至在 jquery site 上也找不到)。
经过大量的排列和组合,我不知何故找到了金子!!我以这种方式填充 input 字段:
$('#id_tIndx17 input').val(item_amount);
结果: