Javascript Can';t获取最近的上一个td输入值
我需要你的帮助 我有,我想要的是将两个td的值相乘,结果进入下一个tdJavascript Can';t获取最近的上一个td输入值,javascript,jquery,html,Javascript,Jquery,Html,我需要你的帮助 我有,我想要的是将两个td的值相乘,结果进入下一个td $(document).ready(function(){ $( "input[id^='unitval']" ).keyup(function() { var input_value = parseFloat($(this).val()); var Cant = $("#item_Cant").text(); var totval = (input_value * Cant); if (!isNaN(inp
$(document).ready(function(){
$( "input[id^='unitval']" ).keyup(function() {
var input_value = parseFloat($(this).val());
var Cant = $("#item_Cant").text();
var totval = (input_value * Cant);
if (!isNaN(input_value)) { // the input is a number
//$("#totval1").val(totval); // update second field
$(this).closest('td').next().find('input').val(totval);
} else { // the input wasn't a number
$("#totval1").val("not a number?"); // show an error mesage
}
});
});
但只适用于第一行,因为第二行仍然与第一行的td相乘,而不是实际的td
我试图改变:
var Cant = $("#item_Cant").text();
与
但不起作用,我不知道为什么,即使是第一排
但在这一行中,我需要正确的Jquery来获取同一tr中的最后一个td输入值
我试了很多台词,但是没有成功,希望你能理解我
谢谢您的帮助。每次计算时,您总是参考
项目ID。您需要找到与当前输入字段相关的quantity元素
以下是一种适用于您当前结构的方法:
$(document).ready(function () {
$("input[id^='unitval']").keyup(function () {
var input_value = parseFloat($(this).val());
var Cant = $(this).closest('tr').find('[id^="item_Cant"]').text();
var totval = (input_value * Cant);
if (!isNaN(input_value)) { // the input is a number
//$("#totval1").val(totval); // update second field
$(this).closest('td').next().find('input').val(totval);
} else { // the input wasn't a number
$("#totval1").val("not a number?"); // show an error mesage
}
});
});
这里有一个难题:一个页面上不能有多个相同的ID
改用类:
$(document).ready(function(){
$( "input.unitval" ).keyup(function() {
var input_value = parseFloat($(this).val());
var Cant = $(this).parent().prev().text();
var totval = (input_value * Cant);
if (!isNaN(input_value)) { // the input is a number
//$("#totval1").val(totval); // update second field
$(this).parent().parent().find('.totval').val(totval);
} else { // the input wasn't a number
$("#totval1").val("not a number?"); // show an error mesage
}
});
});
<table width="500" border="1">
<tr>
<td>Quantity</td>
<td>VAL1</td>
<td>RESULT Quantity*VAL1</td>
<td>VAL2</td>
<td>RESULT Quantity*VAL2</td>
</tr>
<tr>
<td>5</td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
</tr>
<tr>
<td>4</td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
</tr>
</table>
$(文档).ready(函数(){
$(“input.unitval”).keyup(函数(){
var input_value=parseFloat($(this.val());
var Cant=$(this.parent().prev().text();
var totval=(输入值*超高);
如果(!isNaN(输入值)){//,则输入是一个数字
//$(“#totval1”).val(totval);//更新第二个字段
$(this.parent().parent().find('.totval').val(totval);
}否则{//输入不是数字
$(“#totval1”).val(“不是数字?”);//显示错误表
}
});
});
量
瓦尔1
结果数量*1
瓦尔2
结果数量*2
5.
4.
我先开始,ID是唯一的!我将尝试更改相同的ID,因为这是一个包含php和mysql的复杂表,对此表示抱歉。@JaredFarrish您不能假设每个人都有权更改HTML。改变现有结构是不可行的,原因有很多。这是提供给JS开发人员的解决方案。@JaredFarrish请实际阅读代码并意识到没有重复的ID,是的,在这个特定场景中需要一个属性选择器。还有,你的小提琴坏了。伙计们,我没法把结果和栏底的a求和,你能帮我吗?谢谢你的帮助。
$(document).ready(function(){
$( "input.unitval" ).keyup(function() {
var input_value = parseFloat($(this).val());
var Cant = $(this).parent().prev().text();
var totval = (input_value * Cant);
if (!isNaN(input_value)) { // the input is a number
//$("#totval1").val(totval); // update second field
$(this).parent().parent().find('.totval').val(totval);
} else { // the input wasn't a number
$("#totval1").val("not a number?"); // show an error mesage
}
});
});
<table width="500" border="1">
<tr>
<td>Quantity</td>
<td>VAL1</td>
<td>RESULT Quantity*VAL1</td>
<td>VAL2</td>
<td>RESULT Quantity*VAL2</td>
</tr>
<tr>
<td>5</td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
</tr>
<tr>
<td>4</td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
<td><input class="unitval" type="text"/></td>
<td><input readonly class="totval" type="text"/></td>
</tr>
</table>