我已经工作了一整天,试图将"readData“函数中"returnData.salary”的值传递给"calculateTax“函数中的对象,该函数将获取工资值并计算州税和联邦税。我被难住了,我在互联网上找不到任何可以为我提供工作的好例子。这些例子要么简单,要么超级复杂。任何帮助都将不胜感激。
如果我没有以正确的格式提交此问题,我提前道歉。这是我第一次在stackoverflow上请求帮助。
function readForm() {
var returnData = {};
returnData.name = $("#name").val();
returnData.lastName = $("#lastName").val();
returnData.age = $("#age").val();
returnData.gender = $("[name=gender]:checked").val();
returnData.salary = $("#salary").val();
returnData.isManager = $("#isManager").val();
returnData.myTextArea = $("#myTextArea").val();
$("#name2").text(returnData.name);
$("#lastName2").text(returnData.lastName);
$("#age2").text(returnData.age);
$("#gender2").text(returnData.gender);
$("#salary2").text(returnData.salary);
$("#myTextArea2").text(returnData.myTextArea);
if ($(isManager).is(':checked')) {
$("#isManager2").text("Yes");
}
else {
$("#isManager2").text("No");
}
//$("#employeeForm")[0].reset();
} //end of readForm function
function calculateTax() {
console.log("Button Works");
var calculateTax = {
state: function(num) {
num *= 0.09;
return num;
}
, federal: function(num) {
if (num > 10000) {
num *= 0.2;
return num;
}
else {
num * 0.1;
return num;
}
}
, exempt: true
};
}
//Invoke readForm function when the submit button is clicked.
$(document).ready(function () {
$("#btnSubmit").on("click", readForm);
$("#btnCalculate").on("click", calculateTax);
})
</script>发布于 2018-02-20 11:03:00
嗯,简单地说;你不能。至少不是这样的。或者,至少不将值直接传递给函数。
您现在正在使用全局函数,这些函数不在类中。如果它在类中,您可以实例化该类并将其保存到this (这将是类的实例)。然而,我假设在这种情况下类有点太复杂了。你可以做的,是全局设置变量,这样所有的函数都可以使用它们,就像这样;
//declare the global variable so it exists for every function
var returnData = {};
function readForm() {
//We do NOT redeclare the "var" again. It's global now.
returnData = {}; //Reset the global variable when this function is called
returnData.name = $("#name").val();
returnData.lastName = $("#lastName").val();
returnData.age = $("#age").val();
returnData.gender = $("[name=gender]:checked").val();
returnData.salary = $("#salary").val();
returnData.isManager = $("#isManager").val();
returnData.myTextArea = $("#myTextArea").val();
//Rest of your function
}
function calculateTax(){
console.log(returnData) //works here
}请注意,您确实覆盖了全局变量,因此最好在每次函数调用时重置它们。否则,您可能会将旧数据卡在其中。
https://stackoverflow.com/questions/48877165
复制相似问题