台灣最大程式設計社群網站
線上人數
1201
 
會員總數:246203
討論主題:189776
歡迎您免費加入會員
討論區列表 >> ASP >> 計算後的值,希望比較大小,並在新欄位填入對應的文字
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
計算後的值,希望比較大小,並在新欄位填入對應的文字
價值 : 500 QP  點閱數:962 回應數:3
樓主

wowo
門外漢
0 6
713 18
發送站內信

DEAR 各位大大
麻煩了
我寫了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:
&quot;Times New Roman&quot;;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&nbsp;&nbsp;
L3:<input type="text" name="varL3" size="7">mm&nbsp;&nbsp;
L:<input type="text" name="varL" size="7">mm&nbsp;&nbsp;
b:<input type="text" name="varb" size="7">mm&nbsp;&nbsp;
h:<input type="text" name="varh" size="7">mm&nbsp;&nbsp;
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">&nbsp; </font></p>

</BODY></HTML>





本篇文章發表於2015-06-08 23:25
1樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
試試看用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樓
不錯的參考

老頑童
捐贈 VP 給 老頑童 檢舉此回應
主要是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樓
最有價值解答

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
你好
如#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
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.