我有一个代码可以工作一半,但不能更新字段:3R利润公式:,目标售价:,目标利润总额:,目标收益:以及它实际更新的字段,但我仍然需要使用TAB按钮和在填充更改之前先进入某些字段,但是我希望它在我更改相关字段后立即自动更新...
它应该做的是自动更新字段3R利润公式:,目标销售价格:,总目标利润:,目标收益:,但似乎无法使其工作……它停止了3R利润公式字段的工作,所以我无法继续...
这是我正在使用的公式,现在让我们只关注一个字段:3R利润公式
首先我们需要找到
风险/回报因子=风险金额/份额
然后3R利润公式= 3 *风险/回报因子
所以我想要的是无论何时更改“风险金额”或“份额”字段中的值,更改都会自动反映在“ 3R利润公式”字段中
我有下面的代码,
<table width="634" height="224" border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td width="135">Risk Amount:</td>
<td width="81"><input type="text" name="risk" id="risk" size="8"/></td>
<td colspan="2">How much you can afford to lose?</td>
</tr>
<tr>
<td>No. of Shares:</td>
<td><input type="text" name="shares" id="shares" size="8"/></td>
<td colspan="2">Number of shares bought</td>
</tr>
<tr>
<td>Risk/Reward Factor:</td>
<td><input type="text" name="factor" id="factor" size="8" readonly="readonly" /></td>
<td colspan="2"><strong>R</strong> = Risk Amount / No. of Shares</td>
</tr>
<tr>
<td>3R Profit Formula:</td>
<td><input type="text" name="3r" id="3r" size="8" readonly="readonly" /></td>
<td colspan="2">3R formula to get target selling price</td>
</tr>
</table>
这是我的Java脚本代码,似乎只能在Cut Loss:字段下工作,
更新的Java脚本代码
// Risk/Reward Factor
$(function () {
$("#risk, #shares").keyup(function () {
var r = parseFloat($("#risk").val());
var s = parseFloat($("#shares").val());
if (isNaN(r) || isNaN(s) || s<=0) {
$("#factor,#3r").val('');
return false;
}
$("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
$("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
});
});
// Capital
$(function() {
$("#buy, #shares").keyup(function() {
var b2 = parseFloat($("#buy").val(), 10);
var s2 = parseFloat($("#shares").val(), 10);
if (isNaN(b2) || isNaN(s2)) {
$("#capital").val('');
return false;
}
$("#capital").val(b2 * s2);
updatecapital();
});
});
// Cut Loss
$(function() {
$("#buy, #risk, #shares").keyup(function() {
var b = parseFloat($("#buy").val(), 10);
var i = parseFloat($("#risk").val(), 10);
var h = parseFloat($("#shares").val(), 10);
if (isNaN(b) || isNaN(i) || isNaN(h)) {
$("#cutloss").val('');
return false;
}
$("#cutloss").val(b - i / h);
});
});
function updatecutloss() {
var v1 = parseFloat($("#risk").val(), 10);
var v2 = parseFloat($("#shares").val(), 10);
var v3 = parseFloat($("#buy").val(), 10);
if (isNaN(v1) || isNaN(v2) || isNaN(v3)) {
$("#cutloss").val('');
return false;
}
$("#cutloss").val(v3 - v1 / v2);
};
function updatecapital() {
var x1 = parseFloat($("#shares").val(), 10);
var x2 = parseFloat($("#buy").val(), 10);
if (isNaN(x1) || isNaN(x2)) {
$("#capital").val('');
return false;
}
$("#capital").val(x1 * x2);
};
$(function() {
$("#buy, #factor").keyup(function() {
var bu = parseFloat($("#buy").val(), 10);
var fa = parseFloat($("#factor").val(), 10);
if (isNaN(bu) || isNaN(fa)) {
$("#targetprice").val('');
$("#targetprice").change();
return false;
}
$("#targetprice").val(bu + (3 * fa));
$("#targetprice").change();
});
});
$(function () {
$("#risk, #shares, #bp").keyup(function () {
var r = parseFloat($("#risk").val());
var s = parseFloat($("#shares").val());
var bp = parseFloat($("#bp").val()); // buy price
if (isNaN(r) || isNaN(s) || s <= 0) {
$("#factor,#3r,#capital,#targetprice,#totprofit,#gain").val('');
return false;
}
$("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
$("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
if (isNaN(bp)) {
$("#bp").val('');
return false;
}
$("#capital").val((bp*s).toFixed(3));
var targetprice = bp + (r/s*3);
$('#targetprice').val(targetprice.toFixed(3));
$('#totprofit').val((s*targetprice).toFixed(3));
$('#gain').val((bp*s).toFixed(3));
});
$("#bp").keyup(function () {
var r = parseFloat($("#risk").val());
var s = parseFloat($("#shares").val());
if (isNaN(r) || isNaN(s) || s <= 0) {
$("#factor,#3r").val('');
return false;
}
$("#factor").val((r / s).toFixed(3)); // Risk/Reward Factor
$("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
});
});
最佳答案
全部集中在一个地方:
$(function () {
$("#risk, #shares").keyup(function () {
var r = parseFloat($("#risk").val());
var s = parseFloat($("#shares").val());
if (isNaN(r) || isNaN(s) || s<=0) {
$("#factor,#3r").val('');
return false;
}
$("#factor").val((r / s).toFixed(3));
$("#3r").val((r / s * 3).toFixed(3)); // 3R Profit Formula
});
});
http://jsfiddle.net/g76eS/1/
关于javascript - 用于计算的JavaScript不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17900561/