`

工作中遇到的问题及解决办法11

阅读更多

今天测试了我的程序,发现一个bug,或者说没有复合需求的一个小地方,但是问题却比较经典,这让我必须反思一下了.

先看看"工作中遇到的问题及解决办法10"中,我的这个javascript字符和ascii转码的代码,OK!没有问题!但是这样做不符合变更的需求了.

需求变更:

版本号从A-Z,就26个字母.修订号是不断自加的!说的这些都是基于修改页面操作的,当我选onclick版本号,版本号会按着A-Z的顺序不停的循环,当循环到Z时,再重新设置为A,如此反复进行下去.每次的版本号onclick时,修订号自动变成0.这个很好实现.每次的修订号onclick时,版本号要自动回到刚进修改页面时的那个修订号....这才是一个脑筋急转弯的地方,这可咋整?看看我改过来的代码吧:

(1)javascript中怎么把字符转化成ascii码及怎么把ascii码转化成字符

<script>

function updatecheck(id)
    {
         
           if(id=="1")
             {

                //当选定版本号时,把修订号设成0
                document.forms[0].fileUpdateNumber.value = "0";
                var fledtion ="";
                //获得fileEditionNumber的值,并且截取第1位(第1位是英文字母A-Z)
                var fileedition = document.forms[0].fileEditionNumber.value.substring(0,1);

                //将字符转化为相应的ASCII码
                var fileeditionCode = document.forms[0].fileEditionNumber.value.charCodeAt(0);
                fileeditionCode = fileeditionCode+1;

                //将上面转化的ASCII码转换成相应的字符
                fledtion = String.fromCharCode(fileeditionCode);
               
                var edir = fledtion;

                //循环到Z以后,重新设定版本号为A
                if(edir == "["){
                   //alert("无可换版本号!");
                   edir = "A";
                   document.forms[0].fileEditionNumber.value = edir;
                   return false;
                }else{
                //alert(edir);
                document.forms[0].fileEditionNumber.value = edir;

                }
            
             }
            
             if(id=="2")
             {
               
                var fileupdatenumber = document.forms[0].fileUpdateNumber.value;
                fileupdatenumber++;
                var m = "0"+fileupdatenumber;
               
                // 此处将页面传递过来的版本号赋给版本号,这句话是解决问题的关键,"

               //<%=tfileInfor.getFileEditionNumber()%>"是从数据库里取出来的版本号,也就是需求的那个难点
               document.forms[0].fileEditionNumber.value = "<%=tfileInfor.getFileEditionNumber()%>";
  
                document.forms[0].fileUpdateNumber.value = m ;
               

             }
       
    }

 </script>  

<html:form action="略" method="post">

<table width="100%" height="25" border="0" cellpadding="0" cellspacing="0" class="font_14">
         <tr> 
          <td><div align="center">变更:</div></td>
           <td><input type="radio" name="update" value="1" onclick="javascript:updatecheck(this.value);"/>版本号   </td>
           <td><input type="radio" name="update" value="2" onclick="javascript:updatecheck(this.value);"/>修订号 </td>
          </tr>


          <tr>
           <td><div align="center">版本号:</div></td>
           <td ><input type="text" name="fileEditionNumber"  value="<%=fileEditionNumber%>"/></td>
         </tr>

         <tr>
           <td width="130"><div align="center">修订号:</div></td>
           <td><input type="text" name="fileUpdateNumber"  value="<%=fileUpdateNumber%>"/></td>
         </tr>
</table>

</html:form>

这就是解决问题的办法了。

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics