首页 > 解决方案 > 将html字段值传递给JQuery

问题描述

尝试从 HTML 字段中获取数据时,我收到一个 NaN 错误。

如果在代码中添加了数值,则在测试时查询有效,并与返回值一起显示警报。

<label>Monthly Cost</label>
<input type="number" name="pricepermonth" id="pricepermonth" class="form-control" >
<label>ProRata Cost</label>
<input type="text" name="remainingprice" id="remainingprice" class="form-control" >

var dt = new Date();  
month = dt.getMonth();
day   = dt.getDate();
year  = dt.getFullYear();


if(month == 11)
var nextMonth = new Date(year+1,0,1);
else
var nextMonth = new Date(year,month+1,1);

var today = new Date(year,month,day);

var remain = (nextMonth.getTime() - today.getTime())/1000;  
remain = remain/(60*60*24);
totaldays = day+remain;     
var priceperday = pricepermonth/totaldays;

var remainingprice = priceperday.toFixed(2)*remain;
alert(remainingprice);
return remainingprice;
}

var pricepermonth = $('#pricepermonth').data();
code(pricepermonth);

预期的结果是,当将数值添加到 Monthly Cost 字段时,这将触发查询,然后查询将在第二个字段中输出该值作为按比例成本。

我得到的唯一错误消息是 NaN(不是数字)错误。

标签: jqueryhtml

解决方案


由于您使用的是输入,因此您应该使用.val()来:

获取第一个匹配元素的value属性的内容

在您的代码中:

var pricepermonth = $('#pricepermonth').val();

.data()它用于其他用途:

存储与匹配元素关联的任意数据,或在命名数据存储中返回匹配元素集中第一个元素的值。

换句话说,它对于将各种对象、字符串、数组等与 DOM 元素相关联很有用


推荐阅读