2013-04-07 49 views
0

這是myFunctions代碼,但它不起作用。其實它的初學者代碼,因爲我自我教我什麼,我可以去。所有變量都在函數前聲明JavaScript noob與if語句丟失

原始編碼已編輯出。

它一直持續下去,直到所有的管材尺寸和重量都從我填寫的表格中填充。它只有當我有1條語句時纔有效。猜猜我在問什麼是錯的。並有一個更簡單的方法來做到這一點。我有更多的表格來處理井筒套管等不同的事情。

這是不行的

<head> 
    <title>Well Service Prevention</title> 
    <script> 
     var tubingSize; 
     var tubingWeight; 
     var tubingDisplacement; 
     var tubingCapacity; 
     function tubingTables(frm){ 
      if (frm.tubingSize.value == 50.8){ 
       tubingSize = 50.8 
       tubingWeight = 5.06 
       tubingDisplacement = 0.00065 
       tubingCapacity = 0.001413 
       alert("Tubing ID: " + tubingSize) 
      } 
      if (frm.tubingSize.value == 52.4){ 
       tubingSize = 52.4 
       tubingWeight = 4.84 
       tubingDisplacement = 0.000622 
       tubingCapacity = 0.001554 
       alert("Tubing ID: " + tubingSize) 
      } 
      if (frm.tubingSize.value == 60.3 && frm.tubingWeight.value == 5.95){ 
       tubingSize = 60.3 
       tubingWeight = 5.95 
       tubingDisplacement = 0.000765 
       tubingCapacity = 0.00211 
       alert("Tubing ID: " + tubingSize "Tubing Weight:" + tubingWeight) 
      } 
     } 
    </script> 

</head> 
<body> 
    <form name=known> 
     <h3> 
      Enter Known 
     </h3> 
     <p>Tubing ID: <input type="number" name="tubingSize"> 
     <p>Tubing Weight: <input type="number" name="tubingWeight"> 
     <p>Tubing Displacement: <input type="number" name="tubingDisplacement"> 
     <p>Tubing Capacity: <input type="number" name="tubingCapacity"> 
     <input type="button" value="Debug" onclick="tubingTables(this.form)"> 
    </form> 
</body> 

刪除最後一個if語句它的工作原理。

<head> 
    <title>Well Service Prevention</title> 
    <script> 
     var tubingSize; 
     var tubingWeight; 
     var tubingDisplacement; 
     var tubingCapacity; 
     function tubingTables(frm){ 
      if (frm.tubingSize.value == 50.8){ 
       tubingSize = 50.8 
       tubingWeight = 5.06 
       tubingDisplacement = 0.00065 
       tubingCapacity = 0.001413 
       alert("Tubing ID: " + tubingSize) 
      } 
      if (frm.tubingSize.value == 52.4){ 
       tubingSize = 52.4 
       tubingWeight = 4.84 
       tubingDisplacement = 0.000622 
       tubingCapacity = 0.001554 
       alert("Tubing ID: " + tubingSize) 
      } 
     } 
    </script> 

</head> 
<body> 
    <form name=known> 
     <h3> 
      Enter Known 
     </h3> 
     <p>Tubing ID: <input type="number" name="tubingSize"> 
     <p>Tubing Weight: <input type="number" name="tubingWeight"> 
     <p>Tubing Displacement: <input type="number" name="tubingDisplacement"> 
     <p>Tubing Capacity: <input type="number" name="tubingCapacity"> 
     <input type="button" value="Debug" onclick="tubingTables(this.form)"> 
    </form> 
</body> 

也在努力在firefox中獲得一個調試器。任何sugestions?

+2

你的第一個'if'語句使用'frm.tubingSize.value'所有其他的都沒有... – 2013-04-07 01:49:14

+2

你好。你是什​​麼意思「它只適用於1如果陳述」你能詳細說明這個問題嗎? – Alan 2013-04-07 01:49:26

+0

學習使用瀏覽器的調試工具。這將是你所採用的最好的編程步驟。 – 2013-04-07 01:57:25

回答

0

你犯了一些錯誤。這裏看看

// frm seems to be a Javascript Object 
// tubingSize is a property of frm and seems to be an object too since you are accessing value property of it. 
if (frm.tubingSize.value == 52.4){ 
     tubingSize = 52.4 
     tubingWeight = 4.84 
     tubingDisplacement = 0.000622 
     tubingCapacity = 0.001554 
     alert("Tubing ID: " + tubingSize) //debug 
} 

// Since frm.tubingSize is an object. Either you should do .value here or correct your code in above if. 
if (frm.tubingSize == 60.3 && frm.tubingWeight == 5.95){ 
     tubingSize = 60.3 
     tubingWeight = 5.95 
     tubingDisplacement = 0.000765 
     tubingCapacity = 0.00211 
     alert("Tubing ID: " + tubingSize "Tubing Weight:" + tubingWeight) 
} 

這就是爲什麼你只有一個IF工作。您應該也可以在其他IF中使用frm.tubingSize.value。