Javascript JQuery计算按钮
目前我有一个GPA计算器,在输入数据时计算数据。我想添加一个名为“计算”的计算按钮,该按钮将计算所有输入的数据,但仅当按下时。因此,计算只会在按下此按钮时发生,而不会像当前那样进行 代码如下:Javascript JQuery计算按钮,javascript,jquery,Javascript,Jquery,目前我有一个GPA计算器,在输入数据时计算数据。我想添加一个名为“计算”的计算按钮,该按钮将计算所有输入的数据,但仅当按下时。因此,计算只会在按下此按钮时发生,而不会像当前那样进行 代码如下: var$oBox=$('.outer box'); 变量$gpa=$(“#gpa”); var$result=$('.result').hide(); $('.btn')。单击(函数(){ $('.block').last().clone().children().val(“”.parent().app
var$oBox=$('.outer box');
变量$gpa=$(“#gpa”);
var$result=$('.result').hide();
$('.btn')。单击(函数(){
$('.block').last().clone().children().val(“”.parent().appendTo($('.inner box'));
});
$oBox.on('keyup','.credits',function(){
$gpa.text(getTotal());
});
$oBox.on(“更改”,“.grade选择”,函数(){
$gpa.text(getTotal());
$result.is(“:hidden”)&&&$result.show();
});
函数getTotal(){
var gradeTotal=0;
var总和=0;
$(“.credits”)。每个(函数(){
var$this=$(this);
如果(!isNaN($this.val())和&!isNaN($this.parent().find('.grade select').val())){
sum+=parseFloat($this.val()| | 0)*parseFloat($this.parent().find('.grade select').val()| | 0);
gradeTotal+=parseFloat($this.val()| | 0)
}
});
返回值(总和/总等级)。toFixed(2);
}
$(“.btn”)。在(“单击”,函数(){
$('html,body')。设置动画({
scrollTop:$(文档).height()
}“慢”);
返回false;
});代码>
正文{
背景色:#A00000;
背景尺寸:封面;
保证金:0;
填充:0;
}
.外箱{
边框:3倍纯黑;
身高:真;
宽度:75%;
填充:10px;
保证金:10px自动10px自动;
边界半径:10px;
背景色:白色;
}
.街区{
保证金:5px;
}
.类{
边框:1px纯色灰色;
边界半径:5px;
宽度:150px;
高度:35px;
利润率:10px;
填充物:5px;
}
.学分{
边框:1px纯色灰色;
边界半径:5px;
宽度:100px;
高度:35px;
利润率:10px;
填充物:5px;
}
.等级选择{
边框:1px纯色灰色;
边界半径:5px;
宽度:100px;
高度:35px;
利润率:10px;
填充物:5px;
}
.btn{
边框:2件纯黑;
边界半径:5px;
宽度:150px;
高度:35px;
利润率:10px;
填充物:5px;
字体大小:粗体;
文本对齐:居中;
}
.结果{
边框:2件纯黑;
边界半径:5px;
宽度:200px;
高度:100px;
保证金:20px自动20px自动;
填充物:5px;
字体大小:粗体;
文本对齐:居中;
}
#平均成绩{
字号:4rem;
颜色:黑色;
字体大小:粗体;
}
信用
半年
全年
等级
A+
A.
B+
B
C+
C
D
F
添加类
平均成绩
您正在为keyup
和change
调用侦听器中的getTotal函数。因此,正在立即进行计算。如果您希望它发生在单击某个按钮时,请为单击按钮指定一个侦听器,并在那里调用getTotal
比如:
$("#calculate").click(function(){
// code for getting values from input box using .val()
//then call getTotal();
});
希望有帮助,如果您仍然无法实现,请告诉我们。将计算功能的调用从下拉更改事件更改为单击按钮
var$oBox=$('.outer box');
变量$gpa=$(“#gpa”);
var$result=$('.result').hide();
$('.btn')。单击(函数(){
$('.block').last().clone().children().val(“”.parent().appendTo($('.inner box'));
});
$oBox.on('keyup','.credits',function(){
$gpa.text(getTotal());
});
$oBox.on(“更改”,“.grade选择”,函数(){
});
函数getTotal(){
var gradeTotal=0;
var总和=0;
$(“.credits”)。每个(函数(){
var$this=$(this);
如果(!isNaN($this.val())和&!isNaN($this.parent().find('.grade select').val())){
sum+=parseFloat($this.val()| | 0)*parseFloat($this.parent().find('.grade select').val()| | 0);
gradeTotal+=parseFloat($this.val()| | 0)
}
});
返回值(总和/总等级)。toFixed(2);
}
$(“#计算”)。在(“单击”,函数(){
$gpa.text(getTotal());
$result.is(“:hidden”)&&&$result.show();
$('html,body')。设置动画({
scrollTop:$(文档).height()
}“慢”);
返回false;
});代码>
正文{
背景色:#A00000;
背景尺寸:封面;
保证金:0;
填充:0;
}
.外箱{
边框:3倍纯黑;
身高:真;
宽度:75%;
填充:10px;
保证金:10px自动10px自动;
边界半径:10px;
背景色:白色;
}
.街区{
保证金:5px;
}
.类{
边框:1px纯色灰色;
边界半径:5px;
宽度:150px;
高度:35px;
利润率:10px;
填充物:5px;
}
.学分{
边框:1px纯色灰色;
边界半径:5px;
宽度:100px;
高度:35px;
利润率:10px;
填充物:5px;
}
.等级选择{
边框:1px纯色灰色;
边界半径:5px;
宽度:100px;
高度:35px;
利润率:10px;
填充物:5px;
}
.btn{
边框:2件纯黑;
边界半径:5px;
宽度:150px;
高度:35px;
利润率:10px;
填充物:5px;
字体大小:粗体;
文本对齐:居中;
}
.结果{
边框:2件纯黑;
边界半径:5px;
宽度:200px;
高度:100px;
保证金:20px自动20px自动;
填充物:5px;
字体大小:粗体;
文本对齐:居中;
}
#平均成绩{
字号:4rem;
颜色:黑色;
字体大小:粗体;
}
信用
半年
全年
等级
A+
A.
B+
B
C+
C
D
F
添加类
算计
平均成绩
问题出在哪里?@SarveshKumar目前,计算是在输入数据时进行的。我只想在按下按钮时计算数据。