我在表中有这些文本输入:
<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>
Run Code Online (Sandbox Code Playgroud)
通过执行以下操作,我成功地获得了它们的价值:
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(',','.'));
Run Code Online (Sandbox Code Playgroud)
所以我想我可以使用类似的机制来设置它们的值,并尝试这样做:
$(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;
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,其价值保持不变。我尝试用.val代替值,也给他们分配一个id并find("#id").value代替上面的方法做而没有任何结果。
谁能告诉我我在做什么错?
您需要使用该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);
Run Code Online (Sandbox Code Playgroud)
由于它们都在同一行中,因此您可能想要重用初始选择器,如下所示:
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);
Run Code Online (Sandbox Code Playgroud)