问题描述
我是 HTML 与 JavaScript 组合的新手。 这是我的作业,我的代码有一些问题需要专家来看看。 这是问题。
如果工作时间超过 40 小时,则按正常费率的 1.5 倍计算额外时间。 例如,如果一个人工作 50 小时,支付的费率为 10.00 美元/小时,则总工资应为 550.00 美元。
我的代码:
<!DOCTYPE html> <html> <head> <script type="text/javascript"> function calc() { var employ_name = document.getElementById('employ_name').value; var rate_pay = parseInt(document.getElementById('rate_pay').value); var hour_work = parseInt(document.getElementById('hour_work').value); if (hour_work <= 40) { alert("Paid Amount For " + employ_name + " is RM " + rate_pay * hour_work); } else { alert((40 * 1.5) + (c - 40) * c * 1.5); } } function calc() { if (document.getElementById("employ_name").value == "") { alert("PLEASE ENTER THE VALUE!"); return false; } else if (document.getElementById("employ_no").value == "") { alert("PLEASE ENTER THE VALUE!"); return false; } else if (document.getElementById("rate_pay").value == "" { alert("PLEASE ENTER THE VALUE!"); return false; } else { alert("PLEASE ENTER THE VALUE!"); return false; } } </script> <title></title> </head> <body> <form action="url" METHOD="POST"> <table> <tr> <td>Employee Name :</td> <td><input type="text" id="employ_name"></td> </tr> <tr> <td>Employee No :</td> <td><input type="text" id="employ_no"></td> </tr> <tr> <td>Rate of Pay :</td> <td><input type="text" id="rate_pay"></td> </tr> <tr> <td>Hours Work :</td> <td><input type="text" id="hour_work"></td> </tr> <tr> <td><input type="button" id="Button" value="Submit" onclick="calc()"></td> </tr> </table> </form> </body> </html>
1楼
您的代码有几个问题:
您的语法目前不正确,您需要通过在
if
语句中添加右括号来解决此问题:(document.getElementById("rate_pay").value == "") {...}
您有两个同名的函数。 相反,您需要为第二个函数指定一个不同的名称,例如
checkInputs
,以便在调用calc
函数时,它会调用预期的函数。如果所有
if-statments
都失败,您的第二个calc
函数 (checkInputs
) 不应返回false
。 相反,如果它们都fail
,您应该返回true
,因为这表示它们都不为空。为了使您的
calc
功能检查,所有的投入都在其中一个值,你可以叫你的第二个calc
功能(现在checkInputs
)你的第一个内部calc
功能。 通过这种方式,您可以使用if
语句来检查checkInputs
返回什么,从而采取相应的行动。
请参阅以下修改后的代码:
<!DOCTYPE html> <html> <head> <script type="text/javascript"> function calc() { if (checkInputs()) { // check if `checkInputs` returned true or false var employ_name = document.getElementById('employ_name').value; var rate_pay = parseInt(document.getElementById('rate_pay').value); var hour_work = parseInt(document.getElementById('hour_work').value); if (hour_work <= 40) { alert("Paid Amount For " + employ_name + " is RM " + rate_pay * hour_work); } else { // commented out as you have not show us what "c" is: // alert((40 * 1.5) + (c - 40) * c * 1.5); } } else { // if check inputs returned false then you can output error message alert("PLEASE ENTER THE VALUE!"); } } function checkInputs() { if (document.getElementById("employ_name").value.trim() == "") { return false; } else if (document.getElementById("employ_no").value.trim() == "") { return false; } else if (document.getElementById("rate_pay").value.trim() == "") { return false; } return true; } </script> <title>Calculator</title> </head> <body> <form action="url" method="POST"> <table> <tr> <td>Employee Name :</td> <td><input type="text" id="employ_name"></td> </tr> <tr> <td>Employee No :</td> <td><input type="text" id="employ_no"></td> </tr> <tr> <td>Rate of Pay :</td> <td><input type="text" id="rate_pay"></td> </tr> <tr> <td>Hours Work :</td> <td><input type="text" id="hour_work"></td> </tr> <tr> <td><input type="button" id="Button" value="Submit" onclick="calc()"></td> </tr> </table> </form> </body> </html>
注意:在您的checkInputs()
方法中,我也使用了.trim()
。
这将删除输入上的前导/尾随空格。
这意味着如果有人只输入空格,则checkInputts
将返回false
而true
。