Javascript计算表格

时间:2016-08-16 19:06:53

标签: javascript html

请帮帮我: 当我把这个代码放在它刷新整个页面之前它只显示结果一秒钟。我没有找到任何问题,除了它说calcCharterCost没有定义。我不知道这意味着什么,因为对我来说它看起来很明确。 谢谢,

cv::Mat cv::estimateRigidTransform( InputArray src1, InputArray src2, bool fullAffine )
{
    const int RANSAC_MAX_ITERS = 500;
    const int RANSAC_SIZE0 = 3;
    const double RANSAC_GOOD_RATIO = 0.5;

    // ...

    // RANSAC stuff:
    // 1. find the consensus
    for( k = 0; k < RANSAC_MAX_ITERS; k++ )
    {
        int idx[RANSAC_SIZE0];
        Point2f a[RANSAC_SIZE0];
        Point2f b[RANSAC_SIZE0];

        // choose random 3 non-complanar points from A & B
        for( i = 0; i < RANSAC_SIZE0; i++ )
        {
            for( k1 = 0; k1 < RANSAC_MAX_ITERS; k1++ )
            {

2 个答案:

答案 0 :(得分:-1)

默认情况下,没有type 的按钮会提交表单。

将按钮设为非提交类型:

<button type="button" onClick="calcCharterCost()">Calculate</button>

或删除form代码:

<form name="myform">

后者似乎更合适,因为form标记永远不会关闭,从技术上讲,标记无效。实际上使用这个form没有什么,所以不需要它。

答案 1 :(得分:-1)

您有标记错误,并且未在全局范围内定义fuelCost变量。当执行validate方法时,它无法找到fuelCost变量,因为它已在calculate方法中定义和使用。

我修复了你的脚本和标记问题。请查看更正的版本和小提琴。

&#13;
&#13;
<script>
  var fuelCost = 0;

  function calcCharterCost() {
    var destList = document.getElementById("destList");
    var distance = destList.options[destList.selectedIndex].id;
    var speedList = document.getElementById("speedList");
    var gph = speedList.options[speedList.selectedIndex].id;
    var speed = speedList.value;

    fuelCost = document.getElementById("fuelCost").value;
    var feeOutput = document.getElementById("fee");
    var time;
    time = (distance / speed);

    var cost;
    cost = time * gph * fuelCost;
    feeOutput.innerHTML = "$" + cost;
  }

  function validate() {
    if (isNaN(fuelCost) == true) {
      document.getElementById("error").innerHTML = "Error invalid Fuel Cost";
      document.myform.fuelCost.value = "";
      document.myform.fuelCost.focus();
    }
  }
</script>

<body>
  <select id="destList">
    <option id="28">Falmouth to Nantucket</option>
    <option id="11">Falmouth to Edgartown</option>
    <option id="7.6">Falmouth to Oak bluffs</option>
    <option id="38">Falmouth to Newport</option>
  </select>
  <p>
    <select id="speedList">
      <option id="18" value="14">14 kt</option>
      <option id="24" value="18">18 kt</option>
      <option id="30" value="20">20 kt</option>
      <option id="37" value="22">22 kt</option>
    </select>
  </p>
  <input type="text" id="fuelCost" value="4.25" onblur="validate()" />
  <span style="color:red;" id="error"></span>

  <button onClick="calcCharterCost()">Calculate</button>
  The cost of the charter is
  <div id="fee">XXXX</div>
</body>
&#13;
&#13;
&#13;

在此方案中不需要表单标记,因为代码的任何其他部分都未引用它。我删除了它。

Fiddle