0

我有一个要求,即在选中一个框时,用一个值填充同一行中的输入。

我的代码是:

function populatetransportprice() {
// iterate through the "checked" checkboxes
$("table.authors-list").find('input[type="checkbox"][name^="treated"]:checked').each(function () {
    alert(treatedtransportcostperton);
    row.find('input[name^="transportprice"]').val(treatedtransportcostperton.toFixed(2));
});      

}

每行的输入字段是tranpsortpriceX其中 X 是行号。

我的 HTML 是:

<table class="authors-list" id="ordertable">
<tr>
 <td><input name="transportprice1" id="transportprice1" class="rounded"></td>
</tr>
<tr>
 <td><input name="transportprice2" id="transportprice2" class="rounded"></td>
</tr>
<tr>
 <td><input name="transportprice3" id="transportprice3" class="rounded"></td>
</tr>
</table>

警报会为表中的每个复选框填充,但不会填充输入。我假设它与我的row.find.

任何建议表示赞赏,谢谢

更新

当前语法:

 function populatetransportprice() {
$("table.authors-list").find('input[type="checkbox"][name^="treated"]:checked').each(function () {
 $(this).find('input[name^="transportprice"]').val(treatedtransportcostperton.toFixed(2));
$(this).next('input[name^="transportprice"]').val(treatedtransportcostperton.toFixed(2));
});    
}
4

2 回答 2

1

“行”没有在任何地方定义。

    $("table.authors-list").find('input[type="checkbox"][name^="treated"]:checked').each(function () {
        alert(treatedtransportcostperton);
//Try $(this) instead of row. Here 'this' implies each and every element in the loop and then it finds within the element. I think the following code might help,
     $(this).find('input[name^="transportprice"]').val(treatedtransportcostperton.toFixed(2));
$(this).next('input[name^="transportprice"]').val(treatedtransportcostperton.toFixed(2));
//the above is an assumption. Post your HTML
    });   
于 2013-06-10T10:45:12.520 回答
1

如果没有看到这种影响的标记,很难给你一个准确的答案。

但是,根据您提供给我们的有限细节,我预计这不起作用的原因是您的row变量。

我们没有显示如何设置的其余代码,但是我怀疑row设置不正确,或者没有引用您认为的元素。

你最好的选择是row在你的范围内设置,each这样你就可以确保你的目标是与输入相关的行。

就像是:

function populatetransportprice() {
// iterate through the "checked" checkboxes
$("table.authors-list").find('input[type="checkbox"][name^="treated"]:checked').each(function () {
    var row = $(this).closest('tr'),
        priceInput = row.find('input[name^="transportprice"]');

    alert(treatedtransportcostperton);
    priceInput.val(treatedtransportcostperton.toFixed(2));
}); 

这假设“行”确实是一个 table-row tr

于 2013-06-10T10:46:40.660 回答