jquery 在JavaScript中一次为多个变量设置默认值为1

5n0oy7gb  于 2023-10-17  发布在  jQuery
关注(0)|答案(5)|浏览(121)

我在用JavaScript做数学计算。我必须从输入字段中获取输入的值。其中许多可能是空白的。所以在空白的情况下,该值应该是1。
这是我的代码-

var this_item = jQuery(this).parents('.row');
let item_quantity, item_length, item_width, item_height, item_weight = 1;
item_quantity = this_item.find('.item_quantity').val();
item_length = this_item.find('.item_length').val();
item_width = this_item.find('.item_width').val();
item_height = this_item.find('.item_height').val();
item_weight = this_item.find('.item_weight').val();
alert(item_weight);

假设'item_weight'为空,它应该报警1。但它显示我与上述代码空白。
谁能给给予我点建议?

tmb3ates

tmb3ates1#

您可以找到所有元素,然后使用map为每个元素给予适当的默认值。

const [item_quantity, item_length, item_width, item_height, item_weight] =
     this_item.find('.item_quantity, .item_length, .item_width, .item_height, .item_weight')
              .map((_, el) => +(el.value || 1)).get();
oyjwcjzk

oyjwcjzk2#

代码的问题是,您将item_weight初始化为1,因此它立即将其值与输入字段中的值相匹配,即使它是空的。如果输入字段为空,要获得默认值1,您应该检查输入是否为空,如果不是,则只更新item_weight。代码如下:

var this_item = jQuery(this).parents('.row');
let item_quantity, item_length, item_width, item_height, item_weight;
item_quantity = this_item.find('.item_quantity').val();
item_length = this_item.find('.item_length').val();
item_width = this_item.find('.item_width').val();
item_height = this_item.find('.item_height').val();
item_weight = this_item.find('.item_weight').val();

// Check if item_weight is blank (empty or whitespace), then set it to 1
if (item_weight === '' || item_weight.trim() === '') {
  item_weight = 1;
}

alert(item_weight);

希望这对你有帮助!

6tr1vspr

6tr1vspr3#

如果您不希望 * 所有 * 值都默认为“1”(例如,如果其中一个值用于输入文本),您可以应用

.val() || "1"

例如:

var this_item = jQuery(this).parents('.row');
let item_quantity, item_length, item_width, item_height, item_weight = 1;
item_quantity = this_item.find('.item_quantity').val() || "1";
item_length = this_item.find('.item_length').val() || "1";
item_width = this_item.find('.item_width').val() || "1";
item_height = this_item.find('.item_height').val() || "1";
item_weight = this_item.find('.item_weight').val() || "1";
alert(item_weight);

您可以选择使用"1"1。由于它们看起来是数值,您可能希望在之后将它们转换为数字。
顺便说一句,你可以考虑在这里使用一个变量,例如:

var this_row = jQuery(this).parents('.row');

let item = { };
item.quantity = this_row.find('.item_quantity').val() || "1";
item.length = this_row.find('.item_length').val() || "1";
item.width = this_row.find('.item_width').val() || "1";
item.height = this_row.find('.item_height').val() || "1";
item.weight = this_row.find('.item_weight').val() || "1";

// output all fields with one statement
console.log(item);
sxissh06

sxissh064#

let item_quantity = 1; // now item_quantity is 1
item_quantity = this_item.find('.item_quantity').val() // now item_quantity is ''

可以使用条件运算符

var this_item = jQuery(this).parents('.row');
let item_quantity;
item_quantity = this_item.find('.item_quantity').val();
item_quantity = item_quantity === '' ? 1 : item_quantity
atmip9wb

atmip9wb5#

使用此

item_weight = this_item.find('.item_weight').val() ? this_item.find('.item_weight').val() : 1;

相关问题