调用时未调用Javascript函数

时间:2019-01-10 08:54:38

标签: javascript

我当时正在使用JavaScript实现LiveCart更新方法,该方法可以计算总量。但是没有调用JavaScript函数。在使用Django变量作为HTML值之前,它已经开始工作。但是现在即使删除它们,该函数也不会被调用。

Numbers.list
function display() {
  var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
  var fd = document.getElementById("search-input-in").value;
  var sd = document.getElementById("search-input-out").value;
  var firstDate = new Date(fd);
  var secondDate = new Date(sd);
  var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime()) / (oneDay)));
  var ind = document.getElementById("search-input-min").value;
  var base = document.getElementById("search-input").value;
  var button = document.getElementById("search-button");
  if (base == "Cottage and Food"
    or "Cottage") {
    base = 2000;
  }
  if (base == "Other") {
    base = 1500;
  }
  if (diffDays == 0) {
    diffDays = 1;
  }
  num = base * ind * diffDays;
  str1 = "Pay Rs.";
  str2 = num.toString();
  res = str1.concat(str2);
  if (isNaN(num)) {
    button.value = "Pay Rs.0";
    alert(".........");
  } else {
    button.value = res;
    return num;
  }
}

2 个答案:

答案 0 :(得分:0)

根据此tutorial

  

如果设置了src,脚本内容将被忽略。

所以尝试一下:

 <script src="{% static 'js/livecart.js' %}"></script>
 <script type="text/javascript">
   display();
 </script>

答案 1 :(得分:0)

if条件(base == "Cottage and Food" or "Cottage")下,JavaScript代码存在问题。将其替换为(base == "Cottage and Food" || base == "Cottage")

请参见下面的代码。

function display() {
  var oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
  var fd = document.getElementById("search-input-in").value;
  var sd = document.getElementById("search-input-out").value;
  var firstDate = new Date(fd);
  var secondDate = new Date(sd);
  var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime()) / (oneDay)));
  var ind = document.getElementById("search-input-min").value;
  var base = document.getElementById("search-input").value;
  var button = document.getElementById("search-button");
  if (base == "Cottage and Food" ||
    base == "Cottage") {
    base = 2000;
  }
  if (base == "Other") {
    base = 1500;
  }
  if (diffDays == 0) {
    diffDays = 1;
  }
  num = base * ind * diffDays;
  str1 = "Pay Rs.";
  str2 = num.toString();
  res = str1.concat(str2);
  if (isNaN(num)) {
    button.value = "Pay Rs.0";
    alert(".........");
  } else {
    button.value = res;
    return num;
  }
}
<div class="form-div">
  <form class="form-control" action="#" method="post">{% csrf_token %}
    <script type="text/javascript" src="{% static 'js/livecart.js' %}">
      display();
    </script>
    <h1 id="search-text">\ Checkout \</h1>
    <hr>
    <br>
    <label class="search-input" for="select-package">Package </label><br>
    <select required id="search-input" name="package-type">
      <option class="search-input" value={{package}}>{{package}}</option>
    </select>
    <br>
    <label class="search-input" for="in-date">Check-in date </label><br>
    <input required id="search-input-in" type="date" name="in-date" value={{inDate}}><br>
    <label class="search-input" for="out-date">Check-out date </label><br>
    <input required id="search-input-out" type="date" name="out-date" value={{outDate}}><br>
    <label class="search-input" for="indiviuals">Indiviuals</label><br>
    <input required id="search-input-min" type="number" name="individuals" value="0" onchange="display();"><br>
    <hr>
    <input id="search-button" type="submit" name="search" value="Pay Rs.0">
  </form>
</div>