struts1.x 做的页面里用的是logic:iterte标签循环表示数据,每一个数据都有一个月份和日子的text框,现在想利用javascript实现,判断月份框里如果只输入1位数的时候补0表示。例如月份框输入1的时候提交后javascript表示成01表示。
<logic:iterate id="specialValueFormInfoArr" name="specialValueForm" property="specialValueFormInfoArr" indexId="i">
<!-- 明细开始 --> 
<tr>  </tr>
<tr>     
  <td align="center">         
  <html:text indexed="true" name="specialValueFormInfoArr" property="orderMonth"  size="2"/>月       </td>
</tr> 
<tr>  </tr>
<!-- 明细终了 -->
</logic:iterate>
javascript怎样才能把这个月份的框里的值变成补0呢?求教,我知道如果不是用list表示,直接document.forms[0].orderMonth.value赋值01就可以显示了,但现在用了list,给document.forms[0].specialValueFormInfoArr[i].orderMonth.value 赋值不行了,请高手指点下javascriptstrutshtml

解决方案 »

  1.   

    可以在后台补也可以用js 实现。alert(pad3(3,2));
    alert(pad3(13,2));function pad3(num, n) { 
    return (Array(n).join(0) + num).slice(-n); 
    } 用正则也可以匹配。
      

  2.   

    没看懂啊,
    如果页面就一个orderMonth 框,我可以在js里判断输入的值如果是1-9 并且length < 2的场合,form.orderMonth.value = "0" + form.orderMonth.value现在因为用list,所以往回放值得时候不知道怎么写了。
      

  3.   

    自己解决了
    html:text 标签里有1个styleId的属性
    把这个属性给拼上值 格式:styleId=“txtid“<%=i%>
    document.getxxxxId("txtid1").value
    我用的是html标签,document.getxxxxId的时候<%cnt%>不知道为什么不能被编辑好像,jsp里显示的不是txtid0,而是txtid%cnt%,换成input标签就没问题了。当然如果非要用html标签,实验了,可以用document.get****name的方法。