我們可能有兩種可能的解決方法。
注意:在下文中,我們假設值將顯示在文本字段中。顯示的代碼片段是該特定字段的計算事件腳本的一部分。如果要在另一個計算中使用該值,請定義該變量,然後使用其名稱而不是「event.value」。 a)如果可以從選項(「部件類型加缺陷類型」)的意義上計算出該值,我們可以將這些部件設置爲單選按鈕選擇的返回值。在這種情況下,該值是快速計算的:
event.value = this.getField("PartType").value*1 + this.getField("DefectType").value*1) ;
或者,如果存在更復雜的算法/公式,請改爲使用該值。 b)如果沒有公式/算法來計算這個值,我們需要一個查找表。在我們的例子中,我們將定義一個二維數組,其中元素表示PartType,並且是相應的DefectTypes的數組。
單選按鈕字段的返回值將對應於該查找表中的索引號。
我們將開始首次設置查詢表:
var myLUT = new Array() ;
myLUT[0] = [10, 70, aa] ; // values for Gear and Burn, Stress, Depth
myLUT[1] = [bb, cc, dd] ; // values for Camshaft and Burn, Stress, Depth
myLUT[2] = [35, ee, ff] ; // values for Bearing and Burn, Stress, Depth
其中AA,BB,等爲代表的accoriding組件的值。
我們可以在「計算」腳本中定義此查找表,但創建包含此定義的文檔級腳本會更有效。
的計算腳本應該是這樣的:
var pt = this.getField("PartType").value ;
var dt = this.getField("DefectType").value ;
event.value = myLUT[pt][dt] ;
,並且將做到這一點。
處理單選按鈕字段還有一件事。即使必須選擇一個選項,也有可能(和合法)沒有選擇作爲默認選項。但是,兩種情況都會選擇選項。
if (this.getField("PartType").value != "Off" && this.getField("DefectType").value != "Off") {
// now run our code
}
我們可能還需要指定該單選按鈕組中的一個或兩個都沒有(還)檢查發生了什麼:因此,我們必須要求這兩個羣體有一個檢查選項保護代碼。
這是你的代碼嗎? – user7417866
Refere this http://www.javascript-coder.com/javascript-form/javascript-calculator-script.phtml –