我正在使用Javascript更新隐藏表单字段的某些值,后者用于计算总计。这工作正常,但现在似乎发生了一些奇怪的事情,我正在努力解决问题。
<input type="hidden" name="membership[<?php echo $row_id; ?>][total]" class="<?php echo $row_id; ?>total" value="<?php echo $social_prices[$row['membership']]; ?>">
在我的整个函数中,如果我在console.log中获取整个对象:
<input type="hidden" name="membership[1][total]" class="1total" value="43.5">
但是,如果我只是抓取值,我得到该字段的原始值,即24 ..所以使用原始值而不是更新的值来计算总数......
这是我正在做的console.log;
console.log(this);
console.log((this.value));
这是我更新价值的方式:
$('.'+membership+'total').val(total);
如果我在那之后立即运行这一行,我会找回正确的值:
alert($('.'+membership+'total').val());
但是,当我尝试我的全部功能时,这里出现的一切都是错误的,这是我赢得的功能中的一些代码; t发布了很多因为它真的很长。
var total = 0;
$('input:hidden').each(function () {
// I'm using this to make sure I get only the field I want to add together
var result = name.match(/total/g);
if((result)){
console.log(this);
console.log((this.value));
total = total + parseFloat((this).value);
}
});
答案 0 :(得分:0)
$('.'+membership+'total').attr('defaultValue', 'newValue');
更改来自的默认值。
除此之外,.val在DOM上完美运行
答案 1 :(得分:0)
无法找到它的原因可能您的班级名称无效。它以数字开头,这是不允许的。类名的撤销如下:
Naming rules: Must begin with a letter A-Z or a-z Can be followed by: letters (A-Za-z), digits (0-9), hyphens ("-"), and underscores ("_") In HTML, all values are case-insensitive
来源:http://www.w3schools.com/tags/att_global_class.asp
解决方案可能是交换单词和数字:class="total1"
。这样名称有效,但您可以在标识符中添加相同的信息。