Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 值未以正确的输入显示_Javascript_Jquery_Html - Fatal编程技术网

Javascript 值未以正确的输入显示

Javascript 值未以正确的输入显示,javascript,jquery,html,Javascript,Jquery,Html,我有一个带有输入字段的两行表,当我关注第一个输入时,它会进行计算。我遇到的问题是,当我将注意力集中在第二行时,我的新值将显示在第一行相应的输入中。我不知道为什么会这样。我将非常感谢你的帮助 我的期望是,当我在一行输入成本中输入一个值,并将其集中在同一行,但在输入新成本中设置新值时 函数计算元素{ var美元=216.98; var id=element.id; var oldcost=$element.val; var新成本=旧成本*美元; $+id.closesttr.findtd new.

我有一个带有输入字段的两行表,当我关注第一个输入时,它会进行计算。我遇到的问题是,当我将注意力集中在第二行时,我的新值将显示在第一行相应的输入中。我不知道为什么会这样。我将非常感谢你的帮助

我的期望是,当我在一行输入成本中输入一个值,并将其集中在同一行,但在输入新成本中设置新值时

函数计算元素{ var美元=216.98; var id=element.id; var oldcost=$element.val; var新成本=旧成本*美元; $+id.closesttr.findtd new.valnewcost; } 费用 新成本
他们有相同的ID。你需要使ID不同

首先,有一个输入错误。将计算更改为计算 不能有相同的id两个元素具有相同的id。您可以将第一个元素的id更改为old-1或其他内容
这里有几个问题。首先,重复相同的id属性,该属性无效;它们必须是独一无二的。我建议改为使用类。其次,没有新的属性。我认为这是一个打字错误,应该是一个id,但再次看到我的第一点

接下来,您定义的函数名为Calculate,而调用的是Caluculate

然后还应该使用不引人注目的事件处理程序,因为on*事件属性非常过时,应该尽可能避免使用。由于已经在页面中包含jQuery,因此可以使用on方法。输入事件似乎也更适用于您的用法,特别是考虑到它还捕获数字控件上的向上/向下箭头用法,尽管您可以根据需要将其更改为模糊

最后,只需修改DOM遍历逻辑以使用新类,如下所示:

var美元=216.98; $'.old'。关于“输入”,函数{ var oldcost=$this.val; var新成本=旧成本*美元; $this.closesttr.find.new.valnewcost; }; 费用 新成本
你对身份证的使用有点混乱。首先,确保在整个HTML文件中使用一次id。 为了您的用例更好地使用类

还要确保键入正确的函数名

函数计算元素{ var美元=216.98; var parent=$element.最近的'tr'; var oldcost=$element.val; var新成本=旧成本*美元; parent.find.new.valnewcost.toFixed2; } 费用 新成本
问题是您对两个元素使用相同的id属性,而对每个元素使用不同的id属性。或者更好的方法是,以适当的方式使用引用它的元素参数。不应该$+id.closesttr.findtd new.valnewcost;解决这个问题澄清一下,ID属性必须是唯一的-页面上的其他元素不能有相同的ID。是的,这正是我的意思。或者JS会被搞糊涂并发出声音。不应该“$+id.closesttr.findtd new.valnewcost;”修复这个问题,因为我告诉它我指的是哪个id,因为假设您修复了新的属性用法,那么会有多个新元素