刷新不会为零值,将其转换为值列表

时间:2015-09-18 00:29:22

标签: javascript html

所以我正在尝试使用表单中复选框的值来创建一个位域。但是,每当我刷新页面或提交验证失败时,它都会将其变为列表而不是将值归零。

var priceSum = 0;
$('.price:checked').each(function() {
    priceSum += parseInt(this.value);
});

这是在$('#form').submit(function() {})

如果没有验证错误或刷新,我会得到正确的值。但是,如果确实发生了这些事件,它会将值转换为列表。例如,假设验证在成功之前失败两次,而不是获得4,我会得到0,0,4

在进一步审核时,我很确定它与我如何将其附加到表单有关 var prices = $('<input>').attr("type", "hidden").attr("name", "priceSum").val(priceSum); $('#form').append($(prices));

这会不会每次都附加价值?如果是,是否有办法删除已经存在的隐藏字段?

由于

2 个答案:

答案 0 :(得分:1)

如果您不能轻易避免每次创建隐藏输入,则可以先将其删除(如果存在):

$('#form [name=priceSum]').remove();

即使输入不存在,您也可以安全地执行此操作。然后它只会找到零元素,而remove调用将无所作为。

答案 1 :(得分:0)

  

这会不会每次都附加值?

是。如果priceSum输入不存在,则仅附加{{1}}输入。