2

我在表格中有这些文本输入:

<td><input type='text' name='arrondi_devis_ht' class='calcul_total' size='8'></td>
<td><input type='text' name='arrondi_devis_ttc' class='calcul_total' size='8'></td>
<td><input type="text" name='marge_pourcent' class='calcul_total' size='5' value='20,0'></td>

我通过执行以下操作成功获得了它们的价值:

var prix_unitaire_ht=parseFloat($(this).parents("tr").find('input[name="arrondi_devis_ht"]').val().replace(',','.'));
var prix_unitaire_ttc=parseFloat($(this).parents("tr").find('input[name="arrondi_devis_ttc"]').val().replace(',','.'));
var marge_pourcent=parseFloat($(this).parents("tr").find('input[name="marge_pourcent"]').val().replace(',','.'));

所以我想我可以使用类似的机制来设置它们的值并尝试了这个:

$(this).parents("tr").find('input[name="arrondi_devis_ht"]').value=new_prix_ht;
$(this).parents("tr").find('input[name="arrondi_devis_ttc"]').value=new_prix_ttc;
$(this).parents("tr").find('input[name="marge_pourcent"]').value=new_marge;

然而它不起作用,它们的价值保持不变。我试过用 .val 代替 value,也给他们分配一个 id 并做find("#id").value而不是上面没有任何结果。

谁能告诉我我做错了什么?

4

3 回答 3

5

您需要使用该val()方法来设置输入的值。这就是您要查找的内容:

$(this).parents("tr").find('input[name="arrondi_devis_ht"]').val(new_prix_ht);
$(this).parents("tr").find('input[name="arrondi_devis_ttc"]').val(new_prix_ttc);
$(this).parents("tr").find('input[name="marge_pourcent"]').val(new_marge);

由于它们都在同一行,您可能希望像这样重用初始选择器:

var $row = $(this).parents("tr");

$row.find('input[name="arrondi_devis_ht"]').val(new_prix_ht);
$row.find('input[name="arrondi_devis_ttc"]').val(new_prix_ttc);
$row.find('input[name="marge_pourcent"]').val(new_marge);
于 2012-06-25T15:19:58.780 回答
1
$(this).parents("tr").find('input[name="arrondi_devis_ht"]').val(new_prix_ht);
$(this).parents("tr").find('input[name="arrondi_devis_ttc"]').val(new_prix_ttc);
$(this).parents("tr").find('input[name="marge_pourcent"]').val(new_marge);

您需要使用.val()为输入字段设置值。

于 2012-06-25T15:19:25.403 回答
1
$(this).closest("tr").find('input[name="arrondi_devis_ht"]').val(new_prix_ht);
$(this).closest("tr").find('input[name="arrondi_devis_ttc"]').val(new_prix_ttc);
$(this).closest("tr").find('input[name="marge_pourcent"]').val(new_marge);

您可以缓存<tr>比,您可以将代码简化为:

var row = $(this).closest('tr');
row.find('input[name="arrondi_devis_ht"]').val(new_prix_ht);
row.find('input[name="arrondi_devis_ttc"]').val(new_prix_ttc);
row.find('input[name="marge_pourcent"]').val(new_marge);
于 2012-06-25T15:21:48.463 回答