我试图从“f2”减去“f1”的值,它工作正常。但是我只想要它一次,但当我点击提交更多按钮时,它每次从f2减去f1的值。怎么可以只做一次。当我设置值而不是从脚本调用它时,它运行良好。
<form name=bills>
<p><input type="text" name="f1" size="20">
<input type="text" name="f2" size="20" value="30"></p>
<input type="button" value="Submit" onclick="cbs(this.form)" name="B1">
<Script>
function cbs(form)
{
form.f2.value = (([document.bills.f2.value] * 1) - (document.bills.f1.value * 1))
}
请帮助
答案 0 :(得分:1)
JavaScript中数学函数的绝对值是Math.abs();
Math.abs(6-10) = 4;
答案 1 :(得分:1)
不确定您要做什么,但要使用Math.abs()
计算绝对值。
答案 2 :(得分:0)
如果您希望该功能仅工作一次,您可以使用以下内容:
hasBeenRun = false; //have this variable outside the function
if(!hasBeenRun) {
hasBeenRun = true;
//Run your code
}
答案 3 :(得分:0)
您的问题似乎是询问如何只从f2中减去f1一次,无论点击提交按钮多少次。一种方法是使用一个变量来跟踪函数是否已被调用,如果有,则不进行计算。至于提到绝对值的标题,这由Math.abs(value)
<Script>
var alreadyDone = false;
function cbs(form)
{
if (alreadyDone) return;
// this one takes the absolute value of each value and subtracts them
form.f2.value = (Math.abs(document.bills.f2.value) - Math.abs(document.bills.f1.value));
// this one takes the absolute value of the result of subtracting the two
form.f2.value = (Math.abs(document.bills.f2.value - document.bills.f1.value));
alreadyDone = true;
}
为了使函数能够在f1的值发生变化时再次工作,只需在f1更改时将变量alreadyDone
更改为false
<input type="text" name="f1" onChange="alreadyDone=false;" size="20">