非営利団体にお金を寄付し、お金の用途を指定できるようにするための寄付ページを設定しようとしています。贈与者が金額を入力するたびに、贈与者が各フィールドに入力した金額を合計するように設定しました。各フィールドに入力マスクを追加しようとしていますが、JavaScript がクラッシュして何もしません。これは、マスクの前に完全に機能する現在のコードです。
<script src="/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function() {
var calcTot = function() {
var sum = 0;
$('.toTotal').each( function(){
sum += Number( $(this).val() );
});
$('#giveTotal').val( '$' + sum.toFixed(2) );
}
calcTot();
$('.toTotal').change( function(){
calcTot();
});
});
</script>
「toTotal」は、合計する必要があるすべての入力ボックスに付けられたクラス名です。これは、マスクが必要なクラスでもあります。「giveTotal」は合計フィールドの ID です。
StackOverflow や他のサイトで見つけたいくつかのバリエーションを試しました。
完全なコード:
<html>
<head>
<script src="/js/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function() {
//This is one of the masking codes I attempted.
$('.toTotal').mask('9.99', {reverse: true});
//other options I have tried:
//$('.toTotal').mask('9.99');
//$('.toTotal').mask('0.00');
//$('.toTotal').inputmask('9.99');
//$('.toTotal').inputmask('mask', {'mask': '9.99'});
var calcTot = function() {
var sum = 0;
$('.toTotal').each( function(){
sum += Number( $(this).val() );
});
$('#giveTotal').val( '$' + sum.toFixed(2) );
}
calcTot();
$('.toTotal').change( function(){
calcTot();
});
//I have tried putting it here, too
});
</script>
<title>Addition</title>
</head>
<body>
<input type="text" class="toTotal"><br />
<input type="text" class="toTotal"><br />
<input type="text" class="toTotal"><br />
<input type="text" id="giveTotal">
</body>
</html>