1. 程式人生 > >工作中遇到的問題及解決辦法11

工作中遇到的問題及解決辦法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>

這就是解決問題的辦法了。