我一直在努力将“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>
答案 0 :(得分:1)
嗯,简单地说;你不能。反正不是这样的。或者,至少不要将值直接传递给函数。
您现在正在使用全局函数,它们不在类中。如果它在一个类中,你可以实例化该类并将其保存到this
(这将是类&#39;实例)。但是,在这种情况下,我假设课程有点过于复杂。你可以做的是全局设置变量,所以所有函数都可以使用它们,就像这样;
//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
}
请注意,您确实会覆盖全局变量,因此最好在每次函数调用时重置它们。你可能会把旧数据卡在那里,否则。