文本框值计算不正确
Textbox values are not calculated right
我已经使用html和jquery创建了一个表单。它连接到数据库,它应该在数据库中输入在文本框中写入的值。但我有以下问题。如果一个特定的文本框没有输入值,它应该发出警告,并阻止数据进入数据库。一切顺利。同时,我还想要一个文本框,如果这个文本框的值不等于其他文本框的值之和,它就会发出警报,对db也一样。这就是问题所在。它没有得到正确的总和。我的意思是,如果我在第一个文本框中设置值为15,然后在其他文本框中设置值为10,然后设置值为5。(10+5等于第一个文本框),它不应该发出警报,并按照要求在数据库中输入此数据。但事实并非如此。它会发出警报等等。我怎样才能从一个文本框到另一个文本框得到这个和呢?由于
function checkForm() {
if ($('#nr_articol').val().length === 0) {
alert("Nr articol trebuie sa fie introdus! ");
return false;
}
return true;
}
function checkForm2() {
if ($("#scurt_smd").val() + $("#incomplete_smd").val() + $("#bile").val() + $("#scurt_val").val() + $("#incomplete_val").val() + $("#lipsa_smd").val() + $("#invers_smd").val() + $("#componente_lipsa").val() + $("#componente_inversate_1").val() + $("#lipire_hotbar").val() + $("#componente_inversate_2").val() + $("#componente_inversate_3").val() + $("#componente_inversate_4").val() != $('#optic').val() || $('#electric').val()) {
alert("Ai introdus mai multe sau mai putine bucati decat ai verificat in total. Verifica inca odata!");
return false;
}
return true;
}
$(document).ready(function () {
$('#submitbtn').click(function () {
if (checkForm() == true) {
if (checkForm2() == true) {
var frm = $('#form');
// var data = JSON.stringify(frm.serializeArray());
var data = frm.serializeArray();
console.log(data);
$.ajax({
type: 'post',
url: 'http://localhost:3000/',
contentType: 'application/json',
crossDomain: true,
data: JSON.stringify(data),
dataType: 'json',
success: function () {
alert('sucessfully inserted');
},
error: function (err) {
console.log(err);
}
});
}
}
});
});
所有这些数字加在一起的结果是什么?您可能需要将每个值强制转换为int类型:
parseInt($("#scurt_smd").val());
它可能会做字符串连接,所以1 + 2 + 3会显示为"123"而不是6。
2个问题
-
正如我所评论的,您应该在sum之前将输入的值解析为int。作为输入。
-
在您的
A + B + C + .... != Y || Z
方程中,您可能希望求和等于Y或Z,但事实是,如果Z
可以求值为true
,则语句始终为真,您应该写:
var sum = A + B + C + .......;
if (sum != Y || sum != Z)
符合你的期望。
所以你可以将checkForm2
重写为
function checkForm2() {
// Get sum.
var sum = parseInt($("#scurt_smd").val(), 10) + parseInt($("#incomplete_smd").val(), 10) + parseInt($("#bile").val(), 10) +
parseInt($("#scurt_val").val(), 10) + parseInt($("#incomplete_val").val(), 10) + parseInt($("#lipsa_smd").val(), 10) +
parseInt($("#componente_lipsa").val(), 10) + parseInt($("#lipire_hotbar").val(), 10) + parseInt($("#invers_smd").val(), 10) +
parseInt($("#componente_inversate_1").val(), 10) + parseInt($("#componente_inversate_2").val(), 10) + parseInt($("#componente_inversate_3").val(), 10) +
parseInt($("#componente_inversate_4").val(), 10);
var optic = parseInt($('#optic').val(), 10);
var electric = parseInt($('#electric').val(), 10);
// You may need to check all of them are valid numbers
// like
// if (isNaN(sum) || isNaN(optic) || isNaN(electric)) {
// do something.
// }
// If sum is not equal to any of them. or if the 3 values should all be the same, replace && with ||
if (sum !== optic && sum !== electric) {
alert("Ai introdus mai multe sau mai putine bucati decat ai verificat in total. Verifica inca odata!");
return false;
}
return true;
}
相关文章:
- 在 javascript 中计算不正确的问题
- date.js计算不正确
- jQuery重新计算总计和值,但最终总数不正确
- 在瞬间js中计算周数不正确
- jQuery 偏移量在某些页面上计算不正确
- 计算字符串时答案不正确
- 年龄计算不正确
- 为什么我在 JavaScript 中得到这个不正确的算术计算
- 使用点后有四位数字的十进制值计算中的结果不正确
- 当文本具有特殊字符时,offsetWidth计算不正确
- 使用Javascript从输入数组中查找平均值-计算不正确
- JavaScript计算结果不正确
- 为什么这个JavaScript函数在网站第一次加载时不能正确计算,但之后工作正常?
- Ng-if表达式计算不正确
- 罗马数字转换情况不正确计算
- computeDistanceBetween似乎计算不正确
- Angularjs的ngDisabled比较表达式不能正确计算
- 文本框值计算不正确
- 沙狐不正确地计算高度
- If语句计算不正确