私は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());
しかし、関数全体を試してみると、ここですべてがうまくいきません。関数のコードの一部です。本当に長いので、すべてを投稿しません。
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);
}
});