Jquery 如何减去输入值
我有一个php页面,我可以从中减去两个值,其中一个是从mysql数据库获取的,另一个是由用户自己输入的。我想要的是,当在第二个输入字段中输入值时,输入的值应该从数据库调用的第一个输入值中减去,减去的值应该在另一个输入字段中可见。。。 代码是Jquery 如何减去输入值,jquery,phpmyadmin,Jquery,Phpmyadmin,我有一个php页面,我可以从中减去两个值,其中一个是从mysql数据库获取的,另一个是由用户自己输入的。我想要的是,当在第二个输入字段中输入值时,输入的值应该从数据库调用的第一个输入值中减去,减去的值应该在另一个输入字段中可见。。。 代码是 <html> <head> <style> td {font-size:13px;} </style> <scrip
<html>
<head>
<style>
td {font-size:13px;}
</style>
<script src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
$('input').each(function() {
$(this).keyup(function(){
calculatedis($(this));
});
});
});
function calculatedis(src) {
var sub = 0;
var sumtable = src.closest('.sumtable');
sumtable.find('input').each(function() {
var amt1 = $('input[name="amt1"]').val();
var amt2 = $('input[name="amt2"]').val();
sub = (amt1 - amt2)
});
sumtable.find(".netAmt").val(sub.toFixed(2));
}
</script>
</head>
<body>
<form class="inward">
<?php
include("dbconnection.php");
$sql = "SELECT id,price FROM table1 WHERE id='3' ORDER BY id";
$res = mysql_query($sql) or die(mysql_error());
echo "<table border='1' align='center' cellspacing='0' cellpadding='3' class='sumtable'>";
echo "<tr bgcolor='#CCCCCC' height='30'>";
echo "<td>Price</td>";
echo "<td>Discounted Amt</td>";
echo "<td>Net Amt</td>";
echo "</tr>";
while($row2=mysql_fetch_array($sql2))
{
//change row color alternately
$i++;
$color = ($i%2) ? "#f8f8ff" : "#f0fff0";
echo "<tr bgcolor=" . $color . " onmouseover='ChangeBackgroundColor(this)' onmouseout='RestoreBackgroundColor(this)'>
$price = $row2["price"];
if (strlen(trim($price)) == 0)
{
echo "<td> </td>";
}
else
{
echo "<td valign='top'><input name='amt1' value=" . $price . " size='5'/></td>";
}
echo "<td valign='top' ><input name='amt2' size='5'/></td>";
echo "<td valign='top'><input name='netamt' class='netAmt' size='5'/></td>";
echo "</tr>";
}
echo "</table>";
echo "<br>";
echo "<tr><td></td></tr>";
echo "<center>";
echo "<input type='submit' name='submit' value='Save' style='cursor:pointer;cursor:hand;'> ";
echo "<input type='reset' name='clear' value='Clear' style='cursor:pointer;cursor:hand;'>";
echo "</center>";
?>
</form>
</body>
</html>
td{font size:13px;}
$(函数(){
$('input')。每个(函数(){
$(this).keyup(函数(){
计算单位($(本));
});
});
});
函数计算器(src){
var-sub=0;
var sumtable=src.closest('.sumtable');
sumtable.find('input')。每个(函数(){
var amt1=$('input[name=“amt1”]”)。val();
var amt2=$('input[name=“amt2”]')。val();
sub=(amt1-amt2)
});
sumtable.find(“.netAmt”).val(第2部分);
}
您正在循环执行每个输入
,但随后在sub中执行一个计算,每次都会被丢弃。尝试在每个tr
之间循环
此外,还需要通过调用parseInt()来包装$('input[name=…]').val()
(如果为非整数,则为等效项)。代码就是这样,它以字符串的形式检索它们的值。尝试:
sumtable.find('tr').each(function() {
var amt1 = parseInt($(this).find('input[name="amt1"]').val());
var amt2 = parseInt($(this).find('input[name="amt2"]').val());
sub = (amt1 - amt2)
$(this).find('.netAmt').val(sub);
});
@Andrian thanx fr ur kind help,我已经尝试过了,但是NaN在netAmt输入中显示了减去的值应该出现的位置…两个文本框中是否都添加了值?南不是一个数字;空字符串上的parseInt()将返回此值,将NaN添加到另一个数字也将返回此值;在$(this.find('.netAmt').val(sub)中,这可能是我得到NaN的原因,但感谢你的好友bcoz,你的tr循环建议我的脚本运行完美。。。。。。