You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击函数无法获取全局变量askingPrice值,Alert返回NaN求助

问题分析与解决方案

嘿,我明白你的困惑了!问题出在askingPrice变量的赋值时机上:

你现在是在页面刚加载完成时就给askingPrice赋值了,也就是$(document).ready()执行的那一刻,它会读取当时#mortcalc-ask输入框里的内容。如果那时候输入框是空的,或者内容没法转成有效的数字,自然就会得到NaN。更关键的是,就算之后你修改了输入框里的内容,这个变量也不会自动更新——因为它只在页面加载时被赋值了一次,点击事件触发时用的还是最开始的旧值。

解决方案1:每次点击时获取最新值(最简单直接)

把获取输入值的逻辑移到点击事件内部,这样每次点击按钮都会重新读取输入框的当前内容:

$(document).ready(function() {
  var i = 0;
  $(".mortcalc-go").click(function(){
    var i = 1;
    // 每次点击时重新获取并处理输入值
    var askingPrice = parseFloat( $("#mortcalc-ask").val().replace(/,/g,'') );
    alert(askingPrice + " is the cost");
  });
});

解决方案2:保留全局变量并手动更新

如果你确实需要把askingPrice作为全局变量(比如其他地方也要用到),可以写一个复用的更新函数,在页面初始化和点击时都调用它:

$(document).ready(function() {
  var askingPrice;
  var i = 0;
  
  // 封装更新逻辑,方便复用
  function updateAskingPrice() {
    var inputValue = $("#mortcalc-ask").val().replace(/,/g,'');
    // 额外处理:避免无效输入导致NaN
    askingPrice = isNaN(parseFloat(inputValue)) ? 0 : parseFloat(inputValue);
  }
  
  // 页面加载时先初始化一次
  updateAskingPrice();
  
  $(".mortcalc-go").click(function(){
    var i = 1;
    // 点击前先更新变量到最新值
    updateAskingPrice();
    alert(askingPrice + " is the cost");
  });
});

小提示

我还加了个小判断来处理无效输入的情况——如果用户输入的内容没法转成数字,就默认把askingPrice设为0,这样alert里就不会出现讨厌的NaN啦。

内容的提问来源于stack exchange,提问作者kenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:25:54