我尝试更新三个不同表行中三个文本框的值,但它只更新一行中的一个文本框值。我要分享我的代码,请指导我。
HTML:
<table>
<tr>
<td>
<input class="ppp" type="text" id="ItemBuyingPrice0" value="10" style="width:55px;" />
</td>
<td>
<input type="text" id="Itembpusd0" readonly value="1.22" style="width:50px;" />
</td>
</tr>
<tr>
<td>
<input class="ppp" type="text" id="ItemBuyingPrice1" value="10" style="width:55px;" />
</td>
<td>
<input type="text" id="Itembpusd1" readonly value="1.22" style="width:50px;" />
</td>
</tr>
<tr>
<td>
<input class="ppp" type="text" id="ItemBuyingPrice2" value="10" style="width:55px;" />
</td>
<td>
<input type="text" id="Itembpusd2" readonly value="1.22" style="width:50px;" />
</td>
</tr>
</table>
jQuery的:
var BindBPCustom = function (id, BPUSD) {
var errormsg = "";
var amount = $(id).val();
var country21 = $('#CurrencyValue').val();
$.ajax({
type: "GET",
url: cc,
data: { amount: amount, country: country21 },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$(BPUSD).val(data);
},
error: function (jqXHR, exception) {
}
});
}
$(".ppp").on("keydown", function () {
var cnt = 0;
var bp = $("#ItemBuyingPrice" + cnt);
var converted = $("#Itembpusd" + cnt);
cnt++;
BindBPCustom(bp, converted);
alert(cnt);
});
我想更改ItemBuyingPrice0,1,2中输入的每个相应文本的每个Itembpusd0,1,2值。目前它只是改变一个文本框值,如果我输入ItemBuyingPrice0它正在改变Itembpusd0值,但我想在其他文本框中也这样。请指导我
答案 0 :(得分:1)
您可以在事件处理程序中使用this
来引用该元素。您可以使用jquery选择器访问下一个文本框,如下所示:
$(".ppp").on("keydown", function () {
//var bp = $("#ItemBuyingPrice" + cnt); this can be replaced with $(this)
var converted = $(this).parent().next().find("input");
BindBPCustom($(this), converted);
alert(cnt);
});
答案 1 :(得分:1)
我认为你让事情变得更复杂。
var BindBPCustom = function (id, BPUSD) {
var errormsg = "";
var amount = $(id).val();
var country21 = $('#CurrencyValue').val();
$.ajax({
type: "GET",
url: cc,
data: { amount: amount, country: country21 },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
$(BPUSD).val(data);
},
error: function (jqXHR, exception) {
}
});
}
$(".ppp").on("keydown", function () {
var bp = $(this);
var eletoUpdate = bp.parent().siblings('td').find('input:text');
BindBPCustom(bp, eletoUpdate);
});
答案 2 :(得分:0)
我可能会遗漏一些东西,但你需要一个for循环吗?
$(".ppp").on("keydown", function () {
for(var cnt = 0; cnt <2;cnt ++){
var bp = $("#ItemBuyingPrice" + cnt);
var converted = $("#Itembpusd" + cnt);
cnt++;
BindBPCustom(bp, converted);
alert(cnt);
}
}
});
答案 3 :(得分:0)
来自文档
“json”:将响应计算为JSON并返回一个JavaScript对象。
所以,您的data
是一个对象,并将其传递给val()
,您需要stringify
。
$(BPUSD).val(data.stringify());
答案 4 :(得分:0)
您没有循环,因此它只会更新#ItemBuyingPrice0。
放入循环或使用类选择器:
将类购买价格放在您想要更新的输入上,即:
<input class="buyingprice" type="text" id="Itembpusd0" readonly value="1.22" style="width:50px;" />
然后更新:
$(".ppp").on("keydown", function () {
$(".buyingprice").each(function(){
BindBPCustom($(this), converted);
});
});