Javascript 有困难让一些JS数学工作

Javascript 有困难让一些JS数学工作,javascript,Javascript,我正在做一个在游戏中调整汽车的小项目。允许用户输入自己的数字并进行计算,然后显示在屏幕上。用户将输入最大值65、最小值1和百分比55。这是我想要完成的方程:65-1*.55+1 我已经链接了.js文件中的所有输入,我也可以更新屏幕上的文本,但无法使公式正常工作。当我尝试乘以百分比时,问题就开始了。我甚至还没有添加+1。当我在控制台中接收到“NaN”时,我想我可能在从字符串转换为数字时遇到了问题。但我真的不确定问题是什么时候。任何关于如何做得更好的帮助或建议都将不胜感激。如果您需要更多信息,请告诉

我正在做一个在游戏中调整汽车的小项目。允许用户输入自己的数字并进行计算,然后显示在屏幕上。用户将输入最大值65、最小值1和百分比55。这是我想要完成的方程:65-1*.55+1

我已经链接了.js文件中的所有输入,我也可以更新屏幕上的文本,但无法使公式正常工作。当我尝试乘以百分比时,问题就开始了。我甚至还没有添加+1。当我在控制台中接收到“NaN”时,我想我可能在从字符串转换为数字时遇到了问题。但我真的不确定问题是什么时候。任何关于如何做得更好的帮助或建议都将不胜感激。如果您需要更多信息,请告诉我

//==========主要变量========== 常量权重=document.querySelector'fWeightUserInput'。值; const frontWeight=parseIntweight; const antrollmin=document.querySelector'antrollmin'; const antrollmax=document.querySelector'antrollmax'; const mainForm=document.querySelector'mainForm'; //======最终调整文本===== const antiRollFrontTxt=document.querySelector'calcAntiRollFrontNum'; const antirrollRearTXT=document.querySelector'calcAntiRollRearNum'; //=============调整数学计算=========== mainForm.addEventListener'submit',函数e{ e、 防止违约; 康斯特防侧倾阵线= 抗侧滚最大值-抗侧滚最小值*前重/100; 控制台。前重; antiRollFrontTxt.innerText=antiRollFront;
}; 我认为这只是一个数据类型问题,我会尝试以下方法:

const frontWeight=parseFloatweight

我还将整个代码更改为以下内容,以确保您不会得到字符串而不是数字:



const mainForm = document.querySelector('#mainForm');

// ===== Final Tune Text =====
const antiRollFrontTxt = document.querySelector('#calcAntiRollFrontNum');
const antiRollRearTxt = document.querySelector('#calcAntiRollRearNum');
// ========== Tune Math Calculations ===========

mainForm.addEventListener('submit', function (e) {
  e.preventDefault();

// ========== Main Variables ==========
const weight = parseInt(document.querySelector('#fWeightUserInput').value);
const frontWeight = parseFloat(weight);
const antiRollMin = parseInt(document.querySelector('#antiRollMin').value);
const antiRollMax = parseInt(document.querySelector('#antiRollMax').value);

  const antiRollFront =
    (antiRollMax - antiRollMin) * (frontWeight / 100);
  console.log(frontWeight);
  antiRollFrontTxt.innerText = antiRollFront;
});



您是在首次加载页面时设置frontWeight的,而不是在用户输入值之后。请将HTML放入代码段中,使其正常工作。您需要在事件侦听器中获取所有输入的值。根据需要将文本输入字符串类型转换为int或float。输入类型是字符串,所以您必须将其转换为数字。这是否回答了您的问题?这与OP落入了同样的陷阱;它只在页面加载时获取一次值,而不是在提交时获取。哦,thx没有检查这一点,will updateWow!这么简单的一个小错误,非常感谢您的帮助!现在一切都很好!不客气,请考虑我的答案,如果它对你有用的话。