如何从数据库中动态检索多行下拉列表的onchange事件的值
how to retrieve the values from database for onchange event of dropdown for multiple rows dynamically
我有一个不断添加行的按钮。每一行都有一个活动下拉控件和金额文本框。根据下拉列表中选择的值,我需要使用jQueryajax调用从数据库中检索金额。下拉列表是通过单击添加按钮动态添加的。
示例:
在第一行中,我选择了一个活动。我需要第一个文本框中与该活动相关的金额。
类似地,在第二行中,我选择一个活动。我需要第二个文本框中与该活动相关的金额。
如何在javascript或jQuery的帮助下做到这一点?请帮忙。
提前谢谢。
代码
var wpid = 2;
function addWPActivity() {
var table = document.getElementById("wpTable");
rowCountWPTable = table.rows.length;
var row = table.insertRow(rowCountWPTable);
row.insertCell(0).innerHTML = '<select class = "form-control" id="SelectedWorkProgram' + wpid + '" onchange="OnWPChange(this)"><option>--Select Work Program--</option></select>';
row.insertCell(1).innerHTML = '<select class = "form-control" id="SelectedActivity' + wpid + '" ><option>--Select Activity--</option></select>';
row.insertCell(2).innerHTML = '<input type="text" class="form-control" id="wpAmount' + wpid + '" onchange="GetTotalAmount()"/>';
GetValues();
wpid++;
}
Ajax调用
function OnActivitySelect(obj) {
var block = $("#BlockSelect option:selected").text();
var activ = obj.value;
var ID = {
id: activ
};
jQuery.ajax({
method: "POST",
url: '@Url.Action("GetBudgetByWPAID", "Payments")',
data: ID,
success: function (data) {
if (data != null) {
var budg = data;
// $("wpAmount").val = data;
document.getElementById("wpAmount").value = data;
}
//$("#wpAmount1").focusout(function () {
// var amou = document.getElementById("wpAmount1").value;
// var due = (amou - budg);
// document.getElementById("due1").value = due;
//});
}
});
}
我的控制器代码
[HttpPost]
[Authorize]
public double GetBudgetbywpaID(long id)
{
double wpabudget = function.GetBudgetByWPAID(id);
return wpabudget;
}
将一个新的css类myActivity
添加到活动下拉元素中,以便我们稍后可以将其用作jQuery选择器。还将HTML5数据属性中的wpid值设置为表行。我们还需要将css类myAmt
设置为amount文本框,以便稍后访问它。
由于您使用的是jQuery,因此可能会使用一些jQuery简写方法来构建html表行。此外,我从HTML标记中删除了您的所有事件。我们可以以一种不引人注目的方式来做到这一点,这将保持标记的整洁,并提供一些关注点的分离。
function addWPActivity() {
var r =$("<tr />").attr('data-wpid',wpid);
r.append('<td><select class = "myPrgram form-control" id="SelectedWorkProgram' + wpid + '"><option>-Select -</option></select></td>');
r.append('<td><select class ="form-control myActivity" id="SelectedActivity' + wpid + '" ><option>-Select-</option></select></td>');
r.append('<td><input type="text" class="myAmt form-control" id="wpAmount' + wpid + '/></td>');
$("#wpTable").append(r);
wpid++;
}
现在收听下拉上的change
事件
$(function(){
$(document).on("change",".myActivity",function(e){
var _this=$(this);
var wpid =_this.attr('data-wpid');
var url = '@Url.Action("GetBudgetByWPAID", "Payments")',
url = url +"?id="+wpid ;
var amountTxt=_this.closest("tr").find("input.myAmt");
$.post(url,function(result){
//Set the value to the amount textbox.
amountTxt.val(result);
});
});
$(document).on("change",".myPrgram",function(e){
alert('programchanged');
var _this=$(this);
var parentTr=_this.closest("tr");
// You can do whatever you want here.
});
$(document).on("change",".myAmt",function(e){
alert('amount changed');
var _this=$(this);
var parentTr=_this.closest("tr");
// You can do whatever you want here.
});
});
相关文章:
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 从javascript调用服务器端的下拉列表onchange函数
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页
- OnChange 事件使用 React JS 作为下拉列表
- Yii2 Jquery onchange下拉列表
- 下拉列表的onChange()第二次不起作用
- 如何在 javascript onchange 应用 asp.net 时以编程方式更改下拉列表中的选定项
- 如何在javascript中父下拉列表的onchange事件上设置列表框的多个选定值
- HTML 下拉列表无法捕获 onChange() 如果下拉列表中只有一个值使用 javascript
- 如何使用javascript从下拉列表中选择onchange并将其放置在innerHTML中
- onchange - 使用 jQuery 选择的下拉列表
- PHP 填充下拉列表与 ajax onchange 问题 IE 仅限
- 在每个onchange事件上附加值的动态下拉列表
- 需要使用javascript创建onChange/onSelect作为下拉列表
- 如何从数据库中动态检索多行下拉列表的onchange事件的值
- HTML下拉列表可以't如果下拉列表中只有一个值,则捕获onChange()
- onChange不在Safari的下拉列表中启动,适用于IE、FF、Chrome和;歌剧
- 下拉列表中的jQuery onChange
- Django下拉列表onchange提交
- 如何将下拉列表onchange事件转换为列表onclick事件