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