javascript - 刷新不会将值归零,而是将其转换为值列表

标签 javascript html

所以我试图用表单中复选框的值来创建一个位字段。但是,每当我刷新页面或提交验证失败时,它不会将值归零,而是将其转换为列表。

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

这是里面的$('#form').submit(function() {})

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

经过进一步审查,我很确定这与我将其附加到表单的方式有关 var prices = $('<input>').attr("type", "hidden").attr("name", "priceSum").val(priceSum); $('#form').append($(prices));

每次都会继续附加值吗?如果是,有没有办法删除已经存在的隐藏字段?

谢谢

最佳答案

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

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

即使输入不存在,您也可以安全地执行此操作。然后它只会找到零个元素,并且 remove 调用不会执行任何操作。

关于javascript - 刷新不会将值归零,而是将其转换为值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32642042/

相关文章:

javascript - Node JS 应用程序不处理 php 邮件程序代码

html - 在 div 中设置 h1 样式

html - margin 权利不接受较小的屏幕

javascript - 为什么我发现 Javascript/jQuery 如此难以正确使用?

javascript - 我是否将对象传递给 object.defineProperties?

javascript - 将演示数据放入 core-list

javascript - Laravel 和 JQuery : Display mysql row data if ID is set

javascript - 如果类包含特定文本则隐藏该类

javascript - iOS Safari 过度滚动 : Pulling down vs. 弹跳

javascript - 无需重新加载即可更改 URL