| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1204 人关注过本帖
标题:大大帮忙,一个页面中两个表单文本域求和的问题
只看楼主 加入收藏
一米月光
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
大大帮忙,一个页面中两个表单文本域求和的问题
htm的一个计算页面,建立了2个表单,分别为form1和myform:
<script language="JavaScript">
function result(){
var a1=parseFloat(document.form1.a1.value);
var a2=parseFloat(document.form1.a2.value);
if(document.form1.a1.value!="" && document.form1.a2.value!="")
document.form1.a3.value=a1*a2;
//form1表单中,定义了a1、a2,并且能能获得a3的值
if(document.form1.a3.value!="" && document.myform.total.value!="")
document.myform.sum.value=form1.a3+myform.total;
}
</script>
//myform表单中total的文本域已经有数值,也是自动计算出来的(几个域的和)

现在我一运行这个页面,输入a1值后,自动×a2(a2初始=10)得到a3的值,但sum域的值就显示:[object][object]

请大大帮帮我吧,怎么能得到myform的sum值。
不懂但这个功能我很需要,谢谢拉。
搜索更多相关主题的帖子: 表单 文本 页面 求和 
2010-09-24 09:15
xiaoyuechuan
Rank: 2
等 级:论坛游民
帖 子:15
专家分:25
注 册:2010-4-6
收藏
得分:0 
sum的值等于form1.a3+myform.total;
当然会出现oject了

因为form1.a3 和 myform.total本身就是对象,而并没有提取它的值

form1.a3是代表name为a3的这个对象
myform.total代表name为total的这个文本框对象

document.myform.sum.value=document.form1.a3.value+document.myform.total.value;这就好了
2010-09-24 09:46
一米月光
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-24
收藏
得分:0 
以下是引用xiaoyuechuan在2010-9-24 09:46:56的发言:

sum的值等于form1.a3+myform.total;
当然会出现oject了

因为form1.a3 和 myform.total本身就是对象,而并没有提取它的值

form1.a3是代表name为a3的这个对象
myform.total代表name为total的这个文本框对象

document.myform.sum.value=document.form1.a3.value+document.myform.total.value;这就好了
谢谢您的回复。
现在出现的问题是,sum的值显示为a3和total的前后显示而不是两者和显示
这个计算页面我贴出来了,能帮我看下吗?
http://61.173.19.254/js.htm,只要输入计算机数量,其他都是选择的,而total得值能随选择变化。谢谢。
2010-09-24 10:31
xiaoyuechuan
Rank: 2
等 级:论坛游民
帖 子:15
专家分:25
注 册:2010-4-6
收藏
得分:5 
不好意思,前面我没有仔细看,
document.myform.sum.value=document.form1.a3.value+document.myform.total.value;
用getElementById,getElementsByName获取的value全部是字符型的,
要进行计算就必须转换成数值型的
你强制转换一下就好了:
改成这样!
document.myform.sum.value=Number(form1.a3.value)+Number(myform.total.value);
2010-09-24 12:10
一米月光
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-24
收藏
得分:0 
还是把源文件贴上来,大大给看看
实现sum的值=a3+total,并且随myform复选框的不同勾选,sum值相应变化。谢谢。
-------------------------------------------------------------------------------------------
<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=gb2312'>
<TITLE>自动计算</TITLE>
<script type="text/javascript">
var mh = 30;
var step = 5;
var ms = 10;
function toggle(o,u){
  if (!o.tid)o.tid = "_" + Math.random() * 100;
  if (!window.toggler)window.toggler = {};
  if (!window.toggler[o.tid]){
    window.toggler[o.tid]={
      obj:o,
      maxHeight:o.offsetHeight,
      minHeight:mh,
      timer:null,
      action:1
    };
  }
  if(u){
    o.style.height = mh + "px";
  }
  o.style.height = o.offsetHeight + "px";
  if (window.toggler[o.tid].timer)clearTimeout(window.toggler[o.tid].timer);
  window.toggler[o.tid].action *= -1;
  window.toggler[o.tid].timer = setTimeout("anim('"+o.tid+"')",ms );
}
function anim(id){
  var t = window.toggler[id];
  var o = window.toggler[id].obj;
  if (t.action < 0){
    if (o.offsetHeight <= t.minHeight){
        o.style.height = mh + "px"
      clearTimeout(t.timer);
      return;
    }
  }
  else{
    if (o.offsetHeight >= t.maxHeight){
      clearTimeout(t.timer);
      return;
    }
  }
  o.style.height = (parseInt(o.style.height, 10) + t.action * step) + "px";
  window.toggler[id].timer = setTimeout("anim('"+id+"')",ms );
}
</script>
<style type="text/css">
div.xx{border:solid 0px;overflow:hidden;}
div.xx h5{border:solid 0px;border-width:0 0 0px;padding:0;margin:0;height:6px;line-height:12px;cursor:pointer;background:#f3f3f3;}
.unnamed1 {
    font-size: 9px;
}
</style>
<style>
td {
    font-size:9pt;
    font-family: Verdana, Arial;
    color: #000000;
}
a{
    TEXT-DECORATION:none;
    font-family: Verdana, Arial;
    color: #004e98;
    font-size:9pt;
}
a:hover {
    color: #ff0000;
    text-decoration: underline;
    font-family: Verdana, Arial;
    font-size:9pt;
}
</style>
</HEAD>
<BODY onLoad="InitForm();">

<p align="left"><font color="#FF0000" face="Arial">
  <script language="JavaScript">
<!-- Begin
    <!-- begin cloaking from non-JavaScript browsers.
    var form_total=0;
    //Define function to manipulate the form total per item selected/deselected:
    function CheckChoice(whichbox)
        {
        if (whichbox.checked == false)
            { form_total -= eval(whichbox.value); }
        else     { form_total += eval(whichbox.value); }

        //Re-set displayed total on form:
        document.myform.total.value = '¥'+eval(form_total);

        }

    //Define function to init the form on reload:
    function InitForm()
        {
        //Reset the displayed total on form:
        document.myform.total.value='¥0';

        //Set all checkboxes on form to unchecked:
        for (xx=0; xx < document.myform.elements.length; xx++)
         {
         if (document.myform.elements[xx].type == 'checkbox')
            {
            document.myform.elements[xx].checked = false;
            }
         }
        }


    // end cloaking -->
// End -->
function result(){
var a1=parseFloat(document.form1.a1.value);
var a2=parseFloat(document.form1.a2.value);
if(document.form1.a1.value!="" && document.form1.a2.value!="")
document.form1.a3.value=a1*a2;
if(document.form1.a3.value!="" && document.myform.total.value!="")
document.myform.sum.value=document.form1.a3.value+document.myform.total.value;
}
</script>
  </font></p>
<form name="form1" action="">
   <table width="960" border="1" cellpadding="0" cellspacing="1" bordercolor="#CCCCCC">
    <tr>
      <td bgcolor="#CCCCCC"> <div align="left"><font color="#FFFFFF" face="Arial">请输入数量:
          </font>
          <input name="a1" type="text" onBlur="result();" value="" size="12">
          ×
          <input name="a2" type="text" onBlur="result();" value="10.00" size="6">
          元/设备 =
          <input name="a3" type="text" value="" size="12">
        </div></td>
    </tr>
  </table>
  </form>
<form method="POST" name="myform">
  <table width="960" border="0" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
    <tr>
      <td width="751" height="49"> <div align="left"><font face=Arial>
          <input type="text" name="total" readonly onFocus="this.blur();">
          </font></div></td>
      <td width="84"><div align="right"><font size="4"><strong>Total:</strong></font><br>
          <font face="Arial"></font></div></td>
      <td width="125"><div align="right"><font face=Arial>
          <input name="sum" type="text" id="sum" value="" size="18">
          </font></div></td>
    </tr>
  </table>
  <table width="960" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
    <tr bgcolor="#99ABB9">
      <td height="17" colspan="4">
        <div align="left"><font color="#FFFFFF" face="Arial"><strong>请选择</strong></font></div></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td width="225" height="17">
        <div align="center"><font face=Arial>A0 ¥750
          <input type="checkbox" name="Steak" value=750 onClick="CheckChoice(this);">
          </font></div></td>
      <td width="228"><div align="center"><font face=Arial> B0 ¥590
          <input type="checkbox" name="Chicken" value=590 onClick="CheckChoice(this);">
          </font></div></td>
      <td width="225"><div align="center"><font face=Arial> C0 ¥440
          <input type="checkbox" name="Sushi" value=440 onClick="CheckChoice(this);">
          </font></div></td>
      <td width="229"><div align="center"><font face=Arial>D0 ¥300
          <input type="checkbox" name="Sushi5" value=300 onClick="CheckChoice(this);">
          <font color="#FF0000"><strong>(推荐) </strong></font></font></div></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td colspan="4"><div class="xx" id="xx3">
          <h5 onclick="toggle(this.parentNode)">+</h5>
          <p>&nbsp;</p>
          <p>展开后显示的内容<br>
          </p>
        </div></td>
    </tr>
  </table>
  <br>
  <table width="960" height="74" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
    <tr bgcolor="#99ABB9">
      <td height="17" colspan="10"><font color="#FFFFFF" face=Arial><strong><em></em>选择</strong></font></td>
    </tr>
    <tr>
      <td width="96" bgcolor="f3f3f3"><div align="right"><font face=Arial>+1</font></div></td>
      <td width="96" bgcolor="#FFFFFF"><font face=Arial>¥ 30
        <input type="checkbox" name="Sushi2" value=30 onClick="CheckChoice(this);">
        </font></td>
      <td width="96" bgcolor="f3f3f3"><div align="right"><font face=Arial>+2</font></div></td>
      <td width="96" bgcolor="#FFFFFF"><font face=Arial>¥ 60
        <input type="checkbox" name="Sushi22" value=60 onClick="CheckChoice(this);">
        </font></td>
      <td width="96" bgcolor="f3f3f3">&nbsp;</td>
      <td width="96" bgcolor="#FFFFFF">&nbsp;</td>
      <td width="96" bgcolor="f3f3f3">&nbsp;</td>
      <td width="96" bgcolor="#FFFFFF">&nbsp;</td>
      <td width="96" bgcolor="f3f3f3">&nbsp;</td>
      <td width="96" bgcolor="#FFFFFF">&nbsp;</td>
    </tr>
    <tr>
      <td bgcolor="#FFFFFF"><div align="right"><font face=Arial>-1</font></div></td>
      <td bgcolor="f3f3f3"><font face=Arial>¥-30
        <input type="checkbox" name="Sushi3" value=-30 onClick="CheckChoice(this);">
        </font></td>
      <td bgcolor="#FFFFFF"><div align="right"><font face=Arial>-2</font></div></td>
      <td bgcolor="f3f3f3"><font face=Arial>¥-60
        <input type="checkbox" name="Sushi32" value=-60 onClick="CheckChoice(this);">
        </font></td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
      <td bgcolor="#FFFFFF">&nbsp;</td>
    </tr>
  </table>
  <br>
  <table width="960" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="479" rowspan="2"><table width="453" height="97" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
          <tr bgcolor="#99ABB9">
            <td colspan="4"><font color="#FFFFFF" face="Arial"><strong><font color="#000000" size="5"></font>请选择</strong></font></td>
          </tr>
          <tr bgcolor="#FFFFFF">
            <td colspan="2"><div align="center">1</div></td>
            <td colspan="2"><div align="center">2</div></td>
          </tr>
          <tr bgcolor="#f3f3f3">
            <td width="110"> <div align="center">5×8</div></td>
            <td width="112"><font face="Arial">¥-20
              <input type="checkbox" name="Sushi35232" value=-20 onClick="CheckChoice(this);">
              </font></td>
            <td width="118" bgcolor="#f3f3f3"> <div align="center">5×12</div></td>
            <td width="108"><font face="Arial">¥50
              <input type="checkbox" name="Sushi352322" value=50 onClick="CheckChoice(this);">
              </font></td>
          </tr>
        </table></td>
      <td width="481" height="67" valign="top"> <table width="100%" height="37" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
          <tr bgcolor="#99ABB9">
            <td colspan="2"><font color="#FFFFFF" face="Arial"><strong><font color="#000000" size="5"></font>请选择:</strong></font></td>
          </tr>
          <tr bgcolor="#FFFFFF">
            <td width="126"><font face="Arial">¥100
              <input type="checkbox" name="Sushi352352" value=100 onClick="CheckChoice(this);">
              </font></td>
            <td width="269"></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
  <p><font face=Arial><font> </font> </font> </p>
  </form>

</BODY>
</HTML>
<script type="text/javascript">
    toggle(document.getElementById("xx3"),"u");
</script>

[ 本帖最后由 一米月光 于 2010-9-24 13:08 编辑 ]
2010-09-24 12:52
ImFo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-9-15
收藏
得分:0 
互相学习编程,编程改变人生,加群109379521 高手群
互相学习编程,编程改变人生,加群109379521 高手群
互相学习编程,编程改变人生,加群109379521 高手群
2010-09-24 16:48
gulimeksoft
Rank: 4
等 级:业余侠客
威 望:4
帖 子:53
专家分:208
注 册:2010-8-5
收藏
得分:15 
function result(){
var a1=parseFloat(document.form1.a1.value);
var a2=parseFloat(document.form1.a2.value);
if(document.form1.a1.value!="" && document.form1.a2.value!="")
document.form1.a3.value=a1*a2;
if(document.form1.a3.value!="" && document.myform.total.value!="")
var total=document.myform.total.value;
var totalval=parseFloat(total.substring(1,total.length));
var a3=parseFloat(document.form1.a3.value);
var sum=totalval+a3;
document.myform.sum.value=total.substring(0,1)+sum;
}
这样就没问题了,下面的这个改下选择后也会变数据
    function CheckChoice(whichbox)
        {
        if (whichbox.checked == false)
            { form_total -= eval(whichbox.value); }
        else     { form_total += eval(whichbox.value); }

        //Re-set displayed total on form:
        document.myform.total.value = '¥'+eval(form_total);
        var total=eval(form_total);
        var a3=parseFloat(document.form1.a3.value);
        var sum=total+a3;
        document.myform.sum.value='¥'+sum;
        }



[ 本帖最后由 gulimeksoft 于 2010-9-25 12:47 编辑 ]
收到的鲜花
  • 一米月光2010-09-25 23:35 送鲜花  3朵   附言:解决问题
2010-09-25 12:23
一米月光
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-24
收藏
得分:0 
谢谢gulimeksoft的回复,问题解决。
2010-09-25 23:34
快速回复:大大帮忙,一个页面中两个表单文本域求和的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019167 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved