问题摘要
我一直致力于根据 value
添加字段中的各种数字。输入框。我目前遇到 jQuery 连接 value
的问题参数,因为它们是字符串,我无法成功将它们转换为整数。
进一步说明
这是我正在使用的 HTML 示例:
<form action="" method="post">
<input type="text" id="one" value="20.00" />
<input type="text" id="two" value="10.00" />
<a href="#" id="add">
Add up fields
</a>
<input type="submit" value="Submit" />
</form>
这是我的 jQuery(上面描述的这种行为是这个脚本的预期行为):
$(function(){
var one = $('#one').val(),
two = $('#two').val();
$('#add').click(function(e){
e.preventDefault;
var three = one + two;
alert(three);
});
});
这显然导致了输出:
20.0010.00
所以我尝试用 parseInt()
修改我的第一个变量声明像这样:
var one = parseInt($('#one').val(),10),
two = parseInt($('#two').val(),10);
现在的结果是:
NaN
所以我尝试首先获取值,然后转换为整数:
var one = $('#one').val(),
two = $('#two').val(),
i_one = parseInt(one),
i_two = parseInt(two);
但是又... NaN
就是这样的结果。
我也尝试过使用 parseFloat()
进行上述操作这也产生了同样不幸的结果。
我还尝试(在博客上的某个地方阅读)添加 +
前面将强制 jQuery 将变量视为整数,所以我这样做了(参见上面我得到 one
和 two
的位置):
u_one = +one
u_two = +two
我开始认为使用 val()
获取值阻止 jQuery 将它们用作除字符串之外的任何东西......但我一定是错的。
您能否建议我如何以整数格式获取这些值,以便获得结果:
30.00
何时添加字段?
最好同时保留 <input />
并且不添加另一个隐藏<span />
或类似的包含我可以运行的数字 text()
在。
感谢您的阅读。
注意
事实证明,该问题与 jQuery 无关,而与我正在使用的模板有关。上面的代码的工作方式如下面的评论中指出的那样。我已经接受了一个答案,但是发布的所有 jQuery 示例都可以工作。
最佳答案
试试这个方法
$(function(){
var one = $('#one').val();
var two = $('#two').val();
$('#add').click(function(e){
e.preventDefault;
var three = parseInt(one) + parseInt(two);
alert(three);
});
});
引用 jsfiddle 上的工作演示:http://jsfiddle.net/adeshpandey/Y3xmW/
关于javascript - jQuery parseInt() 结果为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21861099/