JavaScript函数不适用于函数之前声明的变量

时间:2016-03-30 19:22:06

标签: javascript

我想在我的函数之前声明一个或多个变量,但是当我这样做时,函数无法工作。我理解在函数内声明的变量是仅在函数范围内起作用的局部变量。为什么我的变量在我的函数之外/之前不能作为“全局”变量工作?

DataSource.groovy

4 个答案:

答案 0 :(得分:4)

  1. 在函数内部移动变量声明和初始化,因为你在开始时从它获得初始值而不是实际值。

    如果您需要不在函数外部的变量,最好将其保留在函数内。

  2. 将值更改为 PoliceOfficer(const ParkedCar &car_, const ParkingMeter &meter_, string name = "...", int badge_number = 000000) : car(car_), meter(meter_) { } 的数字,因为您从输入中获得了一个字符串。

  3. 在某处调用函数parseInt(),可能是在提交时。

  4. limitVisitors()

答案 1 :(得分:0)

一旦页面加载,您就会抓住tb254597的值。这将是一个空字符串('')。您需要每次获取该值

在写下朋友地址时想一想。你在写下来的时候已经得到了他们的地址。但如果他们搬家会发生什么?如果你去旧地址,你就不会找到你的朋友。请务必检查您的朋友是否有最新地址。

答案 2 :(得分:0)

这取决于你如何调用该函数。无论哪种方式,您都必须将变量传递给函数,以便函数知道您的值。

有点类似:

<script type="text/javascript">
  // this parameter can be named whatever
  function limitVisitors(param1) {
    if ( param1 > 60 ) {
      alert("We can only accommodate 60 people on a group visit. You entered " + param1 + " visitors.");
    }
  }

  // Just make sure that this value gets passed to the function like this
  var visitors = document.getElementById('tb254597').value;
  limitVisitors(visitors);
</script>

您可能需要考虑使用jQuery,以便在DOM实际加载时运行$(document).ready()函数。如果您要允许用户输入,您可能希望像点击按钮一样进行事件绑定。

修改 由于您在HTML元素中使用onchange,因此这应该是您所需要的。请注意函数调用中的更改:

<input type="text" name="Field_Number_of_visitors" size="20" id="tb254597" onchange="limitVisitors(this.value);" />

<script type="text/javascript">
  // this parameter can be named whatever
  function limitVisitors(param1) {
    if ( param1 > 60 ) {
      alert("We can only accommodate 60 people on a group visit. You entered " + param1 + " visitors.");
    }
  }
</script>

答案 3 :(得分:0)

我认为你应该这样做:

       function limitVisitors() {
           var visitors = parseInt(document.getElementById('tb254597').value);
           if ( visitors > 60 ) {
              alert("We can only accommodate 60 people on a group visit. You entered " + visitors + " visitors.");
           }
       }

每次拨打limitVisitors,您都会获得价值并进行比较。