我当时正在使用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;
}
}
答案 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>