jQuery-执行计算

jQuery-执行计算,jquery,Jquery,我在表单中有以下3个输入字段: <input id="a" name="a" type="text" /> <input id="b" name="b" type="text" /> <input id="c" name="c" type="text" /> 以及以下一段: <p id="grand_total"></p> 我想将三个文本输入相乘,并用结果填写grand_total 我只希望当我们用0到1000之间的整数填充

我在表单中有以下3个输入字段:

<input id="a" name="a" type="text" />
<input id="b" name="b" type="text" />
<input id="c" name="c" type="text" />

以及以下一段:

<p id="grand_total"></p>

我想将三个文本输入相乘,并用结果填写
grand_total

我只希望当我们用0到1000之间的整数填充所有三个文本输入时,结果才会出现

此外,如果将任何文本字段值更改为另一个有效整数,则我希望重新计算
grand_total
。任何帮助都将不胜感激,谢谢。

试试这个:

if($("#a").val().length && $("#b").val().length && $("#c").val().length) { $("#grand_total").html((parseInt($("#a").val()) + parseInt($("#b").val()) + parseInt($("#c").val()))); } if($(“#a”).val().length&$(“#b”).val().length&$(“#c”).val().length) { $(“#总计”).html((parseInt($(“#a”).val())+parseInt($(“#b”).val())+parseInt($(“#c”).val()); } 这样做的目的是检查所有输入中是否都有值。如果它们都包含某些内容,则内部语句将所有值解析为
int
s,并将输出插入
grand\u total

如果您想将解析为
float
s而不是
int
s,只需将
parseInt()
替换为
parseFloat()

干杯

詹姆斯试试这个:

if($("#a").val().length && $("#b").val().length && $("#c").val().length) { $("#grand_total").html((parseInt($("#a").val()) + parseInt($("#b").val()) + parseInt($("#c").val()))); } if($(“#a”).val().length&$(“#b”).val().length&$(“#c”).val().length) { $(“#总计”).html((parseInt($(“#a”).val())+parseInt($(“#b”).val())+parseInt($(“#c”).val()); } 这样做的目的是检查所有输入中是否都有值。如果它们都包含某些内容,则内部语句将所有值解析为
int
s,并将输出插入
grand\u total

如果您想将解析为
float
s而不是
int
s,只需将
parseInt()
替换为
parseFloat()

干杯


James

此代码将确保每个值都是一个数字,如果不是,则该值将默认为0:

$("#a").change(Calc());
$("#b").change(Calc());
$("#c").change(Calc());    

function Calc() {
var vals = [];
vals.push($("#a").val());
vals.push($("#b").val());
vals.push($("#c").val());

var a = isNaN(parseInt(vals[0])) ? 0 : parseInt(vals[0]);
var b = isNaN(parseInt(vals[1])) ? 0 : parseInt(vals[1]);
var c = isNaN(vals[2]) ? 0 : parseInt(vals[3]);

if(a>-1 && a<1001 && b>-1 && b<1001 && c>-1 && c<1001)
  $("#grand_total").html(a * b * c);
}
$(“#a”).change(Calc());
$(“#b”).更改(计算());
$(“#c”)。更改(计算());
函数计算(){
var VAL=[];
val.push($(“#a”).val());
val.push($(“#b”).val());
val.push($(“#c”).val());
var a=isNaN(parseInt(vals[0])?0:parseInt(vals[0]);
var b=isNaN(parseInt(vals[1])?0:parseInt(vals[1]);
var c=isNaN(vals[2])?0:parseInt(vals[3]);

如果(a>-1&&a-1&&b-1&&c此代码将确保每个值都是一个数字,如果不是,则该值将默认为0:

$("#a").change(Calc());
$("#b").change(Calc());
$("#c").change(Calc());    

function Calc() {
var vals = [];
vals.push($("#a").val());
vals.push($("#b").val());
vals.push($("#c").val());

var a = isNaN(parseInt(vals[0])) ? 0 : parseInt(vals[0]);
var b = isNaN(parseInt(vals[1])) ? 0 : parseInt(vals[1]);
var c = isNaN(vals[2]) ? 0 : parseInt(vals[3]);

if(a>-1 && a<1001 && b>-1 && b<1001 && c>-1 && c<1001)
  $("#grand_total").html(a * b * c);
}
$(“#a”).change(Calc());
$(“#b”).更改(计算());
$(“#c”)。更改(计算());
函数计算(){
var VAL=[];
val.push($(“#a”).val());
val.push($(“#b”).val());
val.push($(“#c”).val());
var a=isNaN(parseInt(vals[0])?0:parseInt(vals[0]);
var b=isNaN(parseInt(vals[1])?0:parseInt(vals[1]);
var c=isNaN(vals[2])?0:parseInt(vals[3]);
如果(a>-1&&a-1&&b-1&&c
函数计算(输入){
var总和=0;
var错误=错误;
输入。每个(函数(){
var value=+$(this).val()| | 0;
如果(值<0 | |值>1000){
错误=真;
return false;//停止“each”循环
}
总和+=数值;
});
如果(错误){
(“总计”)。文本(“无效数字”);
}否则{
$(“总计”)。正文(总和);
}
}
$(“#a,#b,#c”).change(function(){calcSum($(#a,#b,#c”););
函数计算(输入){
var总和=0;
var错误=错误;
输入。每个(函数(){
var value=+$(this).val()| | 0;
如果(值<0 | |值>1000){
错误=真;
return false;//停止“each”循环
}
总和+=数值;
});
如果(错误){
(“总计”)。文本(“无效数字”);
}否则{
$(“总计”)。正文(总和);
}
}
$(“#a,#b,#c”).change(function(){calcSum($(#a,#b,#c”););
优化版本:

var a = parseInt($('#a').val(), 10) || 0,
    b = parseInt($('#b').val(), 10) || 0,
    c = parseInt($('#c').val(), 10) || 0;
    $('#grand_total').html(a+b+c);
只需确保在
parseInt()
中使用
10
作为参数,以避免令人不快的意外;)

优化版本:

var a = parseInt($('#a').val(), 10) || 0,
    b = parseInt($('#b').val(), 10) || 0,
    c = parseInt($('#c').val(), 10) || 0;
    $('#grand_total').html(a+b+c);
只要确保在
parseInt()
中使用
10
作为参数,以避免令人不快的意外;

var$inputs=$(“#a,#b,#c”);
var$result=$(“总计”);
$inputs.change(函数(){
var总和=0;
var valid=true;
$inputs.each(函数(){
var n=parseInt($(this).val(),10);
如果(isNaN(n)| n<0 | n>1000){
返回valid=false;
}否则{
总和*=n;
}
});
有效?$result.text(sum.show():$result.hide();
});
var$inputs=$(“#a,#b,#c”);
var$result=$(“总计”);
$inputs.change(函数(){
var总和=0;
var valid=true;
$inputs.each(函数(){
var n=parseInt($(this).val(),10);
如果(isNaN(n)| n<0 | n>1000){
返回valid=false;
}否则{
总和*=n;
}
});
有效?$result.text(sum.show():$result.hide();
});

@brendan给了我正确的方向,谢谢。下面的代码很有效:

$(document).ready(function () {

  $('#a, #b, #c').change(function () {
    var a = parseInt( $("#a").val(), 10 );
    var b = parseInt( $("#b").val(), 10 );
    var c = parseInt( $("#c").val(), 10 );
    a = isNaN(a) ? 0 : a;
    b = isNaN(b) ? 0 : b;
    c = isNaN(b) ? 0 : c;
    ( a > 0 && a < 1000 && b > 0 && b < 1000 && c > 0 && c < 1000 ) ? $('#grand_total').html( a * b * c ) : $('#grand_total').html(0);
  });

});
$(文档).ready(函数(){
$('#a,#b,#c')。更改(函数(){
var a=parseInt($(“#a”).val(),10);
var b=parseInt($(“#b”).val(),10);
var c=parseInt($(“#c”).val(),10);
a=isNaN(a)?0:a;
b=isNaN(b)?0:b;
c=isNaN(b)?0:c;
(a>0&&a<1000&&b>0&&b<1000&&c>0&&c<1000)?$('grand#u total').html(a*b*c):$('grand#u total').html(0);
});
});

@brendan给了我正确的方向,谢谢。下面的代码很有效:

$(document).ready(function () {

  $('#a, #b, #c').change(function () {
    var a = parseInt( $("#a").val(), 10 );
    var b = parseInt( $("#b").val(), 10 );
    var c = parseInt( $("#c").val(), 10 );
    a = isNaN(a) ? 0 : a;
    b = isNaN(b) ? 0 : b;
    c = isNaN(b) ? 0 : c;
    ( a > 0 && a < 1000 && b > 0 && b < 1000 && c > 0 && c < 1000 ) ? $('#grand_total').html( a * b * c ) : $('#grand_total').html(0);
  });

});
$(文档).ready(函数(){
$('#a,#b,#c')。更改(函数(){
var a=parseInt($(“#a”).val(),10);
var b=parseInt($(“#b”).val(),10);
var c=parseInt($(“#c”).val(),10);
a=isNaN(a)?0:a;
b=isNaN(b)?0:b;
c=isNaN(b)?0:c;
(a>0&&a<1000&&b>0&&b<1000&&c>0&&c<1000)?$('grand#u total').html(a*b*c):$('grand#u total').html(0);
});
});

到目前为止你有什么?有什么特别的东西不适合你吗?到目前为止你有什么特别的东西吗?有什么特别的东西不适合你吗?谢谢,你怎么办