我正在尝试使用.each()
从输入字段获取值,并添加它们以显示另一个输入值中的总和。但不幸的是,尽管使用了parseInt(),但我无法得到总和。
HTML
<input type=text name=value[] id=value class="value">
<input type=text name=value[] id=value class="value">
<input type=text name=totalvalue id=totalvalue>
的JavaScript
var totalvalue = parseInt(0);
$(document).on("focusout",".value",function() {
$(".value").each(function() {
totalvalue = parseInt(totalvalue + $(this).val());
});
$("#totalvalue").val(totalvalue);
});
答案 0 :(得分:1)
你正在解析的是
将
totalValue
添加到输入的字符串中,然后解析结果。
这就是它连接的原因。相反,您需要在totalValue
之外添加parseInt()
以外的,以便它说
取
totalValue
并将解析后的输入值添加到其中。
喜欢这个
totalvalue = totalvalue + parseInt($(this).val());
这可以进一步缩短为
totalvalue += parseInt($(this).val());
答案 1 :(得分:1)
你应该在焦点输出函数中声明@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
,因为它总是会显示两个输入文本的总和,并在总和时传递输入值为空状态!!!
totalvalue
答案 2 :(得分:0)
尝试使用parseFloat()
输入值
<form class="form" (ngSubmit)="f.form.valid && fetchingFlights()" #f="ngForm" novalidate>
<table>
<tr>
<th><label>Flight Carrier: </label></th>
<td>
<div [ngClass]="{ 'has-error': f.submitted && !flightInfo.flightCarrierCode.valid }"></div>
<input type="text" name="flightCarrier" placeholder="Enter Flight Carrier Code" class="textbox" [(ngModel)]="flightInfo.flightCarrierCode" #flightCarrier="ngModel" required>
<div class="validation" *ngIf="f.submitted && !flightInfo.flightCarrierCode.valid" >Carrier code is required</div>
</td>
</tr>
</table>
<div><button type="submit" value="Go">Go</button></div>
parseFloat($(this).val()));
&#13;
var totalvalue = parseInt(0);
$(document).on("focusout",".value",function() {
$(".value").each(function() {
totalvalue = (totalvalue + parseFloat($(this).val()));
});
$("#totalvalue").val(totalvalue);
});
&#13;
答案 3 :(得分:0)
你追加的字符串。 $(this).val()
是一个字符串。只需将其解析为int或float。
答案 4 :(得分:0)
如果您的目的是根据您的代码,那么它将始终与第一个框值相加。
var value = parseInt($(this).val());
if(value)
totalvalue = totalvalue + value;
});
否则你应该详细说明你的问题,以便提供正确的答案。
答案 5 :(得分:0)
您正在将NaN数据类型添加到Number数据类型。因此,您需要在执行添加操作之前对其进行限制。
请检查一下
var totalvalue = 0;
$(document).on("focusout",".value",function() {
$(".value").each(function() {
if(isNaN($(this).val()) || $(this).val() != ''){
totalvalue = totalvalue + parseInt($(this).val());
}
});
$("#totalvalue").val(totalvalue);
});