关于javascript函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:50:44
一个关于javascript的问题
想在一个文本域(form1.num1)中输入一个数字a,然后按下(calculate)后就算a的阶乘,并在另一个文本域(form2.result)中显示,同时在(form1.num1)中显示刚刚输入的a值。
可是发现,不能实现以上的显示。之前function中没有alert(re);两个文本框里都没有内容(其中form1.num1是归为原来的初值1)。后来加了alert(re);在弹出窗口,点击确定之前,以上两个文本框里面显示了想要的结果。点击确定之后,文本框里的内容又没了(其中form1.num1是归为原来的初值1)。
我猜是引用函数的结果,只有在执行函数内才能显示,函数执行玩以后又恢复初值了。
如何解决。

以下是html。

<html>
<head>
<script language="JavaScript">
function jc(a){
var re=1;
for(var i=1;i<=a;i++)
re=re*i;
form1.num1.value=a;
form2.result.value=re;
alert(re);
window.history.back();
}
</script>
<style type="text/css">
<!--
.STYLE2 {font-size: 22px}
-->
</style>
<body>
<p> </p>
<p> </p>
<form action="" method="post" name="form1">
<table width="360" height=&q

我把代码优化下

<html>
<head>
<script language="JavaScript">
function jc(a){
var re=1;
for(var i=1;i<=a;i++)
re=re*i;
document.getElementById('result').value=re;
}
</script>
<body>
<input id="num1" type="text" value="1" size="10">
<input id="result" type="text" size="10">
<input name="button" type="button" onClick="jc(document.getElementById('num1').value)" value="calculate">
</body>
</html>

不知道是不是你想要的效果

兄弟,你form2中使用的submit按钮,<input name="Submit" type="submit" onClick="jc(form1.num1.value)" value="calculate">
页面提交了,也就是计算完后重新加载了一次页面,当然就没有值了啊。因为你的action为"",所以返回了原来的页面,给你了一个假象,还以为是原来的页面,其实是已经提交过了,重新加载的页面。你可以使用普通按钮<inp