2013-04-07 52 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。