下面是本人的一个通过struts2标签写的一个简单页面,现在本人想实现这样一个功能,页面有四个输入项,前三个是可以输入数值的,最后一个是通过前三个输入的值自动计算获得的,请问大家应该如何实现??????
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><script language="JavaScript" type="text/javascript">
    alert('财务数据保存成功');
</script>
<html>
  <head>    
    <title>资产负债表(月报)</title>      </head>  
  <body>
   
<table width="540" border="1">
  <tr>
    <td width="25">行次</td>
    <td width="100">年初数</td>  </tr>
   <s:form action="SaveAction">
    
  <tr>
    <td height="35">1</td>
    <td> 货币资金: <s:textfield name="date01" "/> </td>
   
  </tr>
  <tr>
    <td height="35">2</td>
    <td>短期借款: <s:textfield name="date02" "/></td>
    
  </tr>
  <tr>
    <td height="35">3</td>
    <td>短期投资: <s:textfield name="date03" "/></td>
    
  </tr>
  <tr>
    <td height="35">4</td>
    <td>应付票据: <s:textfield name="date04"  /></td>
    
  </tr>
   <s:submit value="保存" targets="show"/>
  </s:form>    
</table>
  </body>
</html>

解决方案 »

  1.   

    不知lz是否是想用javascript?看一下struts的这些标签生成的最终html标签是什么(id,name的值),然后用js访问计算.
      

  2.   

    如果应付票据=货币资金+短期借款-短期投资,写个javascript的function:
    function test(){document.form[0].date04.value = document.form[0].date01.value+document.form[0].date02.value-document.form[0].date03.value;
    document.form[0].submit();
    }
    在保存按钮上触发上面的function就可以了~~
      

  3.   

    下面是本人的页面:但好像Attribute onBlur invalid for tag textfield
    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><script language="JavaScript" type="text/javascript">
        alert('财务数据保存成功');
    </script>
    <script type="text/javascript">
    function test(){document.form[0].date04.value = document.form[0].date01.value+document.form[0].date02.value-document.form[0].date03.value;
    document.form[0].submit();
    }
    </script>
    <html>
      <head>    
        <title>资产负债表(月报)</title>      </head>  
      <body>
       
    <table width="540" border="1">
      <tr>
        <td width="25">行次</td>
        <td width="100">年初数</td>  </tr>
       <s:form action="SaveAction">
        
      <tr>
        <td height="35">1</td>
        <td> 货币资金: <s:textfield name="date01" onBlur="test()"/> </td>
       
      </tr>
      <tr>
        <td height="35">2</td>
        <td>短期借款: <s:textfield name="date02" onBlur="test()"/></td>
        
      </tr>
      <tr>
        <td height="35">3</td>
        <td>短期投资: <s:textfield name="date03" onBlur="test()"/></td>
        
      </tr>
      <tr>
        <td height="35">4</td>
        <td>应付票据: <s:textfield name="date04"  /></td>
        
      </tr>
       <s:submit value="保存" targets="show"/>
      </s:form>    
    </table>
      </body>
    </html>
      

  4.   

    你的方法触发的不对~~<%@ page contentType="text/html; charset=UTF-8" %> 
    <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <script type="text/javascript"> 
    function test(){ document.saveform.date04.value = document.saveform.date01.value+document.saveform.date02.value-document.saveform.date03.value; 
    document.saveform.submit(); 

    </script> 
    <html> 
      <head>    
        <title>资产负债表(月报) </title>      </head>  
      <body> 
      
    <table width="540" border="1"> 
      <tr> 
        <td width="25">行次 </td> 
        <td width="100">年初数 </td>   </tr> 
      <s:form action="SaveAction" name="saveform"> 
        
      <tr> 
        <td height="35">1 </td> 
        <td> 货币资金: <s:textfield name="date01" /> </td> 
      
      </tr> 
      <tr> 
        <td height="35">2 </td> 
        <td>短期借款: <s:textfield name="date02" /> </td> 
        
      </tr> 
      <tr> 
        <td height="35">3 </td> 
        <td>短期投资: <s:textfield name="date03" /> </td> 
        
      </tr> 
      <tr> 
        <td height="35">4 </td> 
        <td>应付票据: <s:textfield name="date04"  /> </td> 
        
      </tr> 
      <s:button value="保存" targets="show" onClick="test()"/> 
      </s:form>    
    </table> 
      </body> 
    </html> 
    我跟不把from加了个名字,form[0]要用id取值,把submit换成了button,在按钮处触发函数~~~不知道你的action能不能到后台
      

  5.   

    你的方法触发的不对~~<%@ page contentType="text/html; charset=UTF-8" %> 
    <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <script type="text/javascript"> 
    function test(){ document.saveform.date04.value = document.saveform.date01.value+document.saveform.date02.value-document.saveform.date03.value; 
    document.saveform.submit(); 

    </script> 
    <html> 
      <head>    
        <title>资产负债表(月报) </title>      </head>  
      <body> 
      
    <table width="540" border="1"> 
      <tr> 
        <td width="25">行次 </td> 
        <td width="100">年初数 </td>   </tr> 
      <s:form action="SaveAction" name="saveform"> 
        
      <tr> 
        <td height="35">1 </td> 
        <td> 货币资金: <s:textfield name="date01" /> </td> 
      
      </tr> 
      <tr> 
        <td height="35">2 </td> 
        <td>短期借款: <s:textfield name="date02" /> </td> 
        
      </tr> 
      <tr> 
        <td height="35">3 </td> 
        <td>短期投资: <s:textfield name="date03" /> </td> 
        
      </tr> 
      <tr> 
        <td height="35">4 </td> 
        <td>应付票据: <s:textfield name="date04"  /> </td> 
        
      </tr> 
      <s:button value="保存" targets="show" onClick="test()"/> 
      </s:form>    
    </table> 
      </body> 
    </html> 
    我跟不把from加了个名字,form[0]要用id取值,把submit换成了button,在按钮处触发函数~~~不知道你的action能不能到后台