我一直在根据输入框的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);
但是agan ...... NaN
就是这样的结果。
我也使用parseFloat()
尝试了上述操作,这产生了同样不幸的结果。
我也尝试过(在博客上的某个地方阅读),在前面添加+
将强制jQuery将变量视为整数,所以我做了(参见上面我得到的地方one
和{{1 }}):
two
我开始认为使用u_one = +one
u_two = +two
获取值会阻止jQuery将它们用作除字符串以外的任何东西......但我一定是错的。
您能否告诉我如何以整数格式获取这些值,以便获得结果:
30.00
添加字段后?
在保留val()
并且不添加其他隐藏<input />
或类似内容的同时,我可以运行<span />
。
感谢阅读。
它已经曝光,问题与jQuery无关,与我正在使用的模板有关。上述代码的工作方式如下面的评论中所述。我接受了一个作为答案,但所有发布的jQuery示例都可以。
答案 0 :(得分:3)
试试这种方式
$(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/
答案 1 :(得分:1)
使用:var three = parseFloat(one + two);
答案 2 :(得分:0)
你完全看错了问题!
您在点击发生之前提取值;该点的值为空字符串。
答案 3 :(得分:0)
另一种方式
$(function(){
var one = $('#one').val();
var two = $('#two').val();
$('#add').click(function(e){
e.preventDefault;
var three = parseInt(one) + parseInt(two);
$('#three').text("Total: " +three);
});
});
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>
<p id="three"></p>
<input type="submit" value="Submit" />
</form>
答案 4 :(得分:-2)
尝试将输入标记更改为类型编号:
<input type="number" id="one" value="20.00" />