我有一个半完美的代码,但它没有更新字段:3R利润公式:,目标销售价格:,总目标利润:,目标收益:,其实它在更新字段,但我仍然需要使用TAB按钮,并在填充更改之前转到某些字段,但我希望它在我更改相关字段后立即自动更新。。。
它应该做的是自动更新文件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: field,
更新的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
});
});
看起来你的问题是你正确地触发了:
$("#risk, #shares").keyup(....
函数,但这是设置因子值。但是,设置因子值不会触发向上键事件。这意味着不会填充3r字段。
换成
$("#factor").change(function() {
var x = parseFloat($("#factor").val(), 10);
$("#3r").val(x * 3);
});
然后加上:
$("#3r").change();
在$("#风险,#共享")的末尾。keyup(......函数在设置值后将触发新函数。
建议代码:
$(function() {
$("#risk, #shares").keyup(function() {
var r = parseFloat($("#risk").val(), 10);
var s = parseFloat($("#shares").val(), 10);
if (isNaN(r) || isNaN(s)) {
$("#factor").val('');
$("#factor").change();
return false;
}
$("#factor").val(r / s);
$("#factor").change();
});
});
// 3R Profit Formula
$(function() {
$("#factor").change(function() {
var x = parseFloat($("#factor").val(), 10);
$("#3r").val(x * 3);
});
});
都在一个地方:
$(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/
问题内容: 我创建了一个redis lua脚本来执行基于关键数据类型的命令: 每次执行时,它都会返回null。请帮助纠正脚本。 问题答案: 对响应的返回形式如下表:(如果类型为字符串,则返回) 因此,为了正确检查,您应该将代码更改为: 其余代码将正常运行。 问题是这样的:TYPE命令是少数几个返回“简单字符串”或“状态” redis答复的命令之一(有关响应类型,请参见redis协议规范)。在red
问题内容: 这是我的代码段: 但是由于某种原因,正在返回,从而抛出。 问题答案: if (!”success”.equals(statusCheck))
问题内容: 这里的另一个新手..我正在尝试修复以下代码,以防止sql注入,并学习编写php和sql的新方法。 您的建议将不胜感激。 我修改了这个 为此,我没有得到相同的结果。 问题答案: 您不能将mysql与mysqli或PDO混合使用。您需要查看错误日志,因为这不可能实现-您应该看到大量致命错误。
但似乎不起作用。从系统返回: 不确定是什么问题。任何帮助都很感激。
问题内容: 为什么计数为0? 我先启动线程1,然后再启动线程2。计数应为2000。但是它显示计数为0。请有人用简单的术语进行解释。 问题答案: 在打印线程计数时,线程尚未完成执行。 为了演示,在打印出线程数之前添加一条指令: 还要注意,对基元的操作不是线程安全的,并且该操作也不是原子的。您应该同步访问变量,或使用或代替。就目前而言,最终的计数可能在零到20,000之间。
问题内容: 在这里, 我有两个变量,它们通过生成随机数。我希望它们继续滚动,直到两个变量同时生成两个不同的值。因此,我为此使用循环。正如我也明白了,请纠正我,如果我错了,行意为,不断翻滚,直到值 不等于5 和 不等于4 。但是,如果其中一个变量与其值匹配(diceRolled1 = 5 或 diceRolled2 = 4),则程序结束。这不是应该做什么,对吗?我已经运行了大约10次的代码,但是没有