![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 wowo ![]()
![]() |
麻煩了 我寫了2個自動計算式 並想要判斷計算後 數值是 NG 還是 OK 計算式的部份已能執行 但判斷式確無法動作 目前是希望 欄位varM 若大於 欄位 varL3 則在 欄位 varN 填入 NG 反之則填入 OK 欄位varR 若大於 0.01 則在 欄位 varQ 填入 NG 反之則填入 OK 非正式的程式學習者,很多不懂 是否能幫我修改 謝謝 以下是我的程式 <html> <head> <meta http-equiv="Content-Language" content="zh-tw"> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>三板引導塊強度計算</title> <base target="_self"> <META http-equiv=Content-Type content="text/html; charset=windows-1252"> <META content="Microsoft FrontPage 4.0" name=GENERATOR> <META http-equiv=Content-Type content="text/html; charset=windows-1252"> <META content="Microsoft FrontPage 4.0" name=GENERATOR> <META http-equiv=Content-Type content="text/html; charset=windows-1252"> <META content="Microsoft FrontPage 4.0" name=GENERATOR> <style type="text/css"> .90 { } </style> </head> <script language="JavaScript"> function calc1() //計算公式,當再表單中按下C欄位的時後,就會被執行 { var varL2=document.form1.varL2.value; var varL3=document.form1.varL3.value; var varL=document.form1.varL.value; var varb=document.form1.varb.value; var varh=document.form1.varh.value; var varP=document.form1.varP.value; var result; //宣告結果儲存的空間 result= (1*varL2)*2/3; document.form1.varM.value=FormatNumber(result,2); //開模後抱持長度 result= 10*((12*(1*varP)*0.5*(1*varL)*0.1*(1*varL)*0.1*(1*varL)*0.1)/(3*2100000*(1*varb)*0.1*(1*varh)*0.1*(1*varh)*0.1*(1*varh)*0.1)); document.form1.varR.value=FormatNumber(result,5); //導軌的撓曲度 if( varM > varL3 ) //-------2/3判斷 {document.form1.varN.value = "NG" } else {document.form1.varN.value = "OK" } if( varR > 0.01) //-------撓曲判斷 {document.form1.varQ.value = "NG" } else {document.form1.varQ.value = "OK" } } </script> <BODY bgcolor="#FFFFFF" text="#000000" background="../其他照片/愛心2.gif"> <form name="form1" method="post" action=""> <table border="1" cellpadding="10" height="282" width="667"> <tr> <td height="258" width="639"><img src="圖檔/3plate.png" width="700" height="335" alt=""/> <p align="center"><span lang="EN-US" style="font-size:12.0pt;font-family: "Times New Roman";mso-fareast-font-family:新細明體;mso-font-kerning:1.0pt; mso-ansi-language:EN-US;mso-fareast-language:ZH-TW;mso-bidi-language:AR-SA"> <!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="AutoCAD.Drawing.14" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1115892264"> </o:OLEObject> </xml><![endif]--> </span> </p> <p>L2:調整塊長(mm)</p> <p>L3:開模後,調整塊抱持的長度(mm)</p> <p>L:導軌凸出承板的長度(mm)</p> <p>b:導軌深度(mm)</p> <p>h:導軌寬度(mm)</p> <p>P:承板以上的動模重+頂出板重(kg)</p> <br> L2:<input name="varL2" type="text" size="7">mm L3:<input type="text" name="varL3" size="7">mm L:<input type="text" name="varL" size="7">mm b:<input type="text" name="varb" size="7">mm h:<input type="text" name="varh" size="7">mm P:<input type="text" name="varP" size="7">kg </p> <p style="line-height: 150%">調整塊的2/3長度<span lang="EN-US"><span style="mso-text-raise: -12.0pt"></span></span><input type="text" name="varM" onclick="calc1()" size="8"> ;判斷是否大於2/3<input type="text" name="varN" onclick="calc1()" size="8"> </p> <p style="line-height: 150%">每塊導軌撓曲度(內定2塊導軌)<span lang="EN-US"><span style="mso-text-raise: -12.0pt"></span></span><input type="text" name="varR" onclick="calc1()" size="8">mm ;判斷每塊導軌撓曲是否在0.01以內<input type="text" name="varQ" onclick="calc1()" size="8"> </font> </p> </td> </table> </form> <SCRIPT LANGUAGE=javascript> function FormatNumber(srcStr,nAfterDot){ var srcStr,nAfterDot; var resultStr,nTen; srcStr = ""+srcStr+""; strLen = srcStr.length; dotPos = srcStr.indexOf(".",0); if (dotPos == -1){ resultStr = srcStr+"."; for (i=0;i<nAfterDot;i++){ resultStr = resultStr+"0"; } return resultStr; } else{ if ((strLen - dotPos - 1) >= nAfterDot){ nAfter = dotPos + nAfterDot + 1; nTen =1; for(j=0;j<nAfterDot;j++){ nTen = nTen*10; } resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen; return resultStr; } else{ resultStr = srcStr; for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){ resultStr = resultStr+"0"; } return resultStr; } } } </script> <p><font size="4"> </font></p> </BODY></HTML>
本篇文章發表於2015-06-08 23:25
|
1樓
不錯的參考
迷路 ![]() ![]() |
試試看用parseFloat()函數
if( parseFloat(varM) > parseFloat(varL3) ) 和 if( parseFloat(varR) > 0.01) 話說你的程式碼直接這樣貼上來,閱讀上實在很麻煩,會降低大家回答的意願 請參考下面這篇文章 http://www.blueshop.com.tw/board/FUM20041006152641OLG/BRD20081107145230A5O.html
本篇文章回覆於2015-06-09 09:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
不錯的參考
老頑童 ![]() ![]() |
主要是varM及varR都未宣告
像varL3前面有用var varL3=document.form1.varL3.value;進行宣告 所以後面直接用varL3是ok的 但varM及varR就沒有,所以系統不認識它們 請改用完整路徑 if( document.form1.varM.value > varL3 ) //-------2/3判斷 或是像前面一樣進行宣告
本篇文章回覆於2015-06-09 10:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
最有價值解答
麥兜照日光 ![]() ![]() |
你好
如#2 老頑童大大所說 在你的script中varM及varR 系統不認識 建議 方法1. 如#2 改判斷式 方法2. document.form1.varM.value=FormatNumber(result,2); //開模後抱持長度 var varM=document.form1.varM.value; //<--加入 document.form1.varM.value=FormatNumber(result,2); //開模後抱持長度 var varM=document.form1.varM.value; //<--加入 以上~
本篇文章回覆於2015-06-09 14:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |