希望你能帮助我,我觉得你很容易解决这个问题:)。
我有以下jquery脚本:
$('#addpricebtn').click(function () {
$('.stidinput').each(function (i) {
$.ajax({
type: 'GET',
url: '/Builder/rateretriever',
datatype: 'json',
data: { id: $('.stidinput').val() },
success: function (result) {
$('.categoryinput').html(result[i].category + ' - ' + result[i].subcategory + ' - ' + result[i].site);
$('.formatinput').html(result[i].format);
$('.exclusiveinput').html(result[i].exclusive);
$('.cminput').html(result[i].costmethod);
}
});
});
});
这个脚本有效,但只查看第一个填充的id,我想使用每行的代码,这就是为什么我有下面的代码...(我想使用相同的请求与不同在用户填写的每一行上都有id :))
$('#addpricebtn').click(function () {
$('.stidinput').each(function (i) {
var inputer = $('.stidinput').val();
$.ajax({
type: 'GET',
url: '/Builder/rateretriever',
datatype: 'json',
data: { id: inputer[i] },
success: function (result) {
$('.categoryinput').html(result[i].category + ' - ' + result[i].subcategory + ' - ' + result[i].site);
$('.formatinput').html(result[i].format);
$('.exclusiveinput').html(result[i].exclusive);
$('.cminput').html(result[i].costmethod);
}
});
});
});
希望你能帮忙:)。
修改
当然,我有以下HTML代码:
<div class="io-container">
<table id="iolist">
<tr>
<th>ID</th>
<th>Name:</th>
<th>Format:</th>
<th>Exclusive:</th>
<th>Start:</th>
<th>End:</th>
<th>Cost Method:</th>
<th>Target 1:</th>
<th>Target 2:</th>
<th>Frequency Cap:</th>
<th>RC Price:</th>
<th>Impressions:</th>
<th>Gross Budget Discount:</th>
<th>Net Net Budget</th>
<th>Net eCPM</th>
</tr>
<tr>
<td><input class="stidinput" name="stidinput" type="text" /></td>
<td class="categoryinput"></td>
<td class="formatinput"></td>
<td class="exclusiveinput"></td>
<td>01/01/2015</td>
<td>01/01/2015</td>
<td class="cminput"></td>
<td></td>
<td></td>
<td></td>
<td class="rcinput"></td>
<td class="impsinput"></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<button id="addrowbtn">AddRow</button>
<button id="addpricebtn">AddPrice</button>
用户应该能够添加一行并使用类 stidinput 填充单元格,然后用户单击 addpricebtn 按钮,该按钮将从中检索JSON格式的数据库。我需要找到一种方法,jquery脚本检索所有STID并填写从数据库收到的相应信息,而不仅仅是第一个......
谢谢,
答案 0 :(得分:0)
显然,你的错误是你在每次迭代中填充第一个TR
行。我想你首先要抓住每个stidinput
的父行,并用相应的数据填充它。它可能看起来像跟随(我认为它不需要使用索引):
$('#addpricebtn').click(function () {
$('.stidinput').each(function (i) {
var inputer = $(this).val();
var currentRow = $(this).parent();
$.ajax({
type: 'GET',
url: '/Builder/rateretriever',
datatype: 'json',
data: { id: inputer },
success: function (result) {
currentRow.find('.categoryinput').html(result.category + ' - ' + result.subcategory + ' - ' + result.site);
currentRow.find('.formatinput').html(result.format);
currentRow.find('.exclusiveinput').html(result.exclusive);
currentRow.find('.cminput').html(result.costmethod);
}
});
});
});
此外,您可以在调用ajax之前添加if...
是否已填充该行以防止重复填充行和过度调用服务器脚本。