0

我有这两行:

<tr>
  <td class="contenu"><input type="text" name="numart" id="numart"/></td>
  <td class="contenu"><input type="text" name="descart" id="descart"/></td>
  <td class="contenu"><input type="text" name="pdepart" id="pdepart"/></td>
  <td class="contenu"><input type="text" name="pvart" id="pvart"/></td>
  <td class="contenu"><input type="text" name="ageart" id="ageart"/></td>
  <td><a class="plus" title="Rajouter une ligne">+</a></td>
</tr>
<tr>
  <td class="contenu"><input type="text" name="numart" id="numart"/></td>
  <td class="contenu"><input type="text" name="descart" id="descart"/></td>
  <td class="contenu"><input type="text" name="pdepart" id="pdepart"/></td>
  <td class="contenu"><input type="text" name="pvart" id="pvart"/></td>
  <td class="contenu"><input type="text" name="ageart" id="ageart"/></td>
  <td><a class="plus" title="Rajouter une ligne">+</a></td>
</tr>

我将如何选择:

<input type="text" name="pvart" id="pvart"/>

从:

<input type="text" name="pdepart" id="pdepart"/>

因为:

pvart= 2*pdepart
4

4 回答 4

0

首先,您应该解决重复的 id 以避免 JavaScript 出现问题

如果您只想对一个输入的变化做出反应,将其乘以 2,然后插入另一个输入,那么您可以执行以下操作:

$("#pdepart").change(function() {
    $("#pvart").val(parseInt($(this).val(), 10) * 2);
});

编辑:如果你只想做一次:

 $("#pvart").val(parseInt($("#pdepart").val(), 10) * 2);
于 2012-05-06T18:57:46.300 回答
0

请将您的答案编辑为正确的 HTML。HTML 不允许两个元素具有相同的 id 属性。如果这是您的页面的编码方式,那么您需要先解决此问题。

如果要预填充,请使用 javascript。

于 2012-05-06T18:57:56.883 回答
0

当您认为填充正确时,请在 event 上尝试以下代码行pvart。 可能是添加图标的onkeyup事件pdepart或onblur事件将值转换为数字pdepart+

document.getElementById('pvart').value = (+document.getElementById('pdepart').value)*2;
于 2012-05-06T18:59:32.293 回答
0
$('#pdepart').each(function() {
   if(this.value)
       $(this).next('#pvart').val(parseInt(this.value) * 2);
});

或者,如果您想更改任何事件,则可以执行以下操作:

$('#pdepart').on('keyup', function() { //  you can bind any event like focus, change, blur etc
   if(this.value)
           $(this).next('#pvart').val(parseInt(this.value) * 2);
});

笔记:

$(this).next('#pvart')将选择您正在处理的input#pvart下一个。input#pdepart

于 2012-05-06T19:16:32.717 回答