javascript - 无法在 HTML 页面上查看 JavaScript 函数的结果
问题描述
function calculate() { //Edit use () not {}
//Edit, use getElementById to get elements and validate return
let hour = document.getElementById("hour")
,minute = document.getElementById("minute");
if ( hour != undefined && hour.value != undefined ) {
hour = Number(hour.value);
}
if ( minute != undefined && minute.value != undefined ) {
minute = Number(minute.value);
}
alert("hour: " + hour + ", minute: " + minute);
let actualHour = Math.ceil(parseFloat(hour + "." + minute))
,additionalCharge = 0.75, minimumCharge = 3.00
,maximumCharge = 12.00, totalCost = 0.0;
alert("actualHour: " + actualHour);
if( actualHour >= 24 ){
totalCost = 12.00;
} else if ( actualHour <=2 ){
totalCost = 3.00;
}
if ( actualHour > 2 && actualHour < 24 ) {
let countedHourForAdditionalCharge = actualHour - 2;
totalCost = 3.00 + countedHourForAdditionalCharge * 0.75;
if ( totalCost > 12.00 ) {
totalCost = 12.00;
}
}
alert("total charge: " + totalCost);
}
<b>Hours:</b><input type="text" name="hour" id="hour"/>
<b>Minutes:</b><input type="text" name="minute" id="minute"/>
<button type= "button" onclick="calculate()" value="Submit">Submit</button>
我正在编写一个程序来根据用户输入的小时和分钟显示停车费。我有一个 HTML 代码和一个 JavaScript 代码,但是单击 HTML 页面上的“计算”按钮后,什么也没有发生。我不确定如何显示结果。我想要一些关于哪种方法最容易让函数工作并显示结果的建议。
JavaScript 函数的约束如下:
车库收取 3.00 美元的最低停车费,最多可停放两个小时。
车库收取 3.00 美元的最低停车费,最多可停放两个小时。
超过两小时,车库每小时或部分额外收费 0.75 美元。
任何给定 24 小时期间的最高费用为 12.00 美元。
小时向上舍入到最接近的整数。(如果有人停车4小时35分钟,则四舍五入为5小时)
提前致谢!
HTML:
<form name="myForm" action="/Users/wilson/Desktop/form.html" onsubmit="event.calculate(); method"POST">
<b>Hours:</b><input type="text" name="hour" id="hour"/>
<b>Minutes:</b><input type="text" name="minute" id="minute"/>
<button type= "button" onclick="calculate()" value="Submit">Submit</button>
</p>
JavaScript:
function calculate() { //Edit use () not {}
//Edit, use getElementById to get elements and validate return
let hour = document.getElementById("hour")
,minute = document.getElementById("minute");
if ( hour != undefined && hour.value != undefined ) {
hour = Number(hour.value);
}
if ( minute != undefined && minute.value != undefined ) {
minute = Number(minute.value);
}
alert("hour: " + hour + ", minute: " + minute);
let actualHour = Math.ceil(parseFloat(hour + "." + minute))
,additionalCharge = 0.75, minimumCharge = 3.00
,maximumCharge = 12.00, totalCost = 0.0;
alert("actualHour: " + actualHour);
if( actualHour >= 24 ){
totalCost = 12.00;
} else if ( actualHour <=2 ){
totalCost = 3.00;
}
if ( actualHour > 2 && actualHour < 24 ) {
let countedHourForAdditionalCharge = actualHour - 2;
totalCost = 3.00 + countedHourForAdditionalCharge * 0.75;
if ( totalCost > 12.00 ) {
totalCost = 12.00;
}
}
alert("total charge: " + totalCost);
}
解决方案
我做了一些改动,请检查一下。
()
用作不运行的后期修复{}
。{}
用于定义功能范围。- 我在 HTML 中使用了带有 onclick 功能的按钮
function calculate() {
var hour = document.getElementById("hour").value;
var minute = document.getElementById("minute").value;
//Updated
if(hour === "" && minute === ""){
alert("Please provide valid inputs");
return false;
}
// alert("hour "+hour)
// alert("minute "+minute)
let minimumCharge = 3.00;
let additionalCharge = 0.75;
let maximumCharge = 12.00;
let actualHour = Math.ceil(parseFloat(hour+"."+minute));
alert("actualHour: "+actualHour);
let totalCost = 0.0;
if(actualHour >=24){
totalCost = 12.00;
}
if(actualHour <=2){
totalCost = 3.00;
}
if(actualHour >2 && actualHour <24){
let countedHourForAdditionalCharge = actualHour - 2;
totalCost = 3.00 + countedHourForAdditionalCharge * 0.75;
if(totalCost > 12.00){
totalCost = 12.00;
}
}
alert("total charge: " +totalCost);
}
<b>Hours:</b><input type="text" name="hour" id="hour">
<b>Minutes:</b><input type="text" name="minute" id="minute">
<button type= "button" onclick="calculate()" value= "Submit">Submit</button>
<!-- >>>>>>>>>>>>>>>^ you were missing " -->
推荐阅读
- python-3.x - 如何使用 docker 从另一个仓库安装自定义模块
- c++ - 检查 std::string.c_str() 的返回值
- android - 在 Android 中构建项目时遇到几个错误
- openlayers - 从geojson绘制openlayers折线
- json - 使用 jsonschema 和 robotsframework 验证 json
- c# - 无法使用 Microsoft.Azure.ServiceBus 连接到 Azure ServiceBus
- python - 设置详细的正则表达式
- c# - 如何创建不是数据库中实体的 FileUpload 视图/视图模型
- sql-server - SQL Server 中的 Max 和 Decode 转换
- angularjs - AngularJS - 子组件不更新父组件数据