Javascript -计算两个相关字段之间的剩余部分
Javascript - calculating the remaining between two related fields
首先,我想计算表单中两个字段之间的剩余QTY(数量);换句话说,我有实际QTY输入文本字段作为只读,其值是从mysql表中获得的,并且有用户QTY输入文本字段是从用户输入中获取的。我想要的只是根据用户在用户QTY中输入的内容减少实际QTY。
我有如下代码:
$query2 = "SELECT * from store_00";
$result2 = mysql_query($query2);
$n = array();
while($row2 = mysql_fetch_assoc($result2)){
echo "<td align=center>".$row2['item_no']."</td><td align=center>";
?>
<input type="text" id="fname" value="<?php echo $row2['qty'] ?>" readonly="readonly"/>
<?php
echo "</td>";
for($i=0;$i<$num;$i++){
echo "<td align=center>"; ?><input autofocus="autofocus" onchange="myFunction(this.value);" type="text" name="n[]" value=""/><?php echo "</td>";
}
echo "</tr>";
}
和Javascript代码:
function myFunction(v)
{
var x=document.getElementById("fname");
x.value = x.value - v;
}
上面将第一次正确地输出实际QTY,但是当用户将值更改回0时,它将从新的实际QTY值中递减,从而给出假剩余…因此,必须有一种方法来保存一个临时的实际QTY值。
无论如何我知道代码看起来很糟糕,我仍然是JS的新手,不知道如何在两个字段之间创建一个简单的关系和剩余的计算。
当你不使用jQuery和你的问题是关于javascript,我已经改变了一些事情做你想要的很容易。此外,id应该是唯一的,而类不需要是唯一的。正如您所述,由于具有相同值的id会产生问题,因此您没有存储原始值,这是您的主要问题。有很多方法,但我更喜欢这个,因为我想它很容易理解。
$n = array();
echo "<table>";
while($row2 = mysql_fetch_assoc($result2)){
echo "<tr class='inputs'>";
echo "<td align=center> ".$row2['item_no']." </td><td align=center>";
echo "<input class='original' type='text' id='c".$row2['item_no']."' value='".$row2['qty']."' readonly='readonly'/>";
echo "</td>";
for($i=0;$i<$num;$i++){
echo "<td align=center>";
echo "<input class='d".$row2['item_no']."' data-goto='c".$row2['item_no']."' data-original = '".$row2['qty']."' autofocus='autofocus' onchange='myFunction(this);' type='text' name='n[]' value='0'/>";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
使用html5,您可以使用data-
前缀定义自定义标记,并且可以使用该对象的getAttribute
方法访问它们。
<script>
function myFunction(v){
var minus = 0;
var mutualInputs = document.getElementsByClassName(v.className);
for (var i = 0; i < mutualInputs.length; ++i) {
var item = mutualInputs[i];
minus = minus + parseInt(item.value);
}
var original = v.getAttribute('data-original');
var x = document.getElementById(v.getAttribute('data-goto'));
x.value = original - minus;
}
</script>
ps:你的item_no
在这个例子中必须是唯一的
相关文章:
- 输入字段,只接受0到12之间的数字
- 在两个多选字段之间移动选项
- 只有一些带undercore.js的字段在对象数组之间求交集和等于
- MVC5 - 检查用于搜索日期字段的 2 个日期(文本框)之间的重叠
- 如何在 dialog() 模式弹出窗口中的部分视图之间保留字段数据
- 使用 Javascript 的 HTML 中两个字段之间的区别
- 在 2 个字段之间自动重新计算
- 无法在放置的字段之间放置元素
- 将光标聚焦在 HTML 上创建,然后在 Lightswitch 2013 中的属性字段之间移动光标
- 在两个html字段之间形成关系
- 在HTML输入字段之间切换输入法
- 计算动态输入字段数之间的百分比
- 在iText中使用JavaScript查找两个字段之间的差异
- jquery EditInPlace字段之间的选项卡
- 在特定输入字段和完整表单之间的显示之间切换表单
- Javascript -计算两个相关字段之间的剩余部分
- 将一个字段复制到另一个字段,但在单词之间添加逗号
- 如何将两个对象之间字段值的变化放入变量中?
- 实时计数两个HTML日期输入字段之间的日期
- 在两个隐藏的字段之间传递