2013-07-10 11 views
6

Próbuję utworzyć stronę darowizn dla osób, które mogą przekazać pieniądze organizacji non-profit i pozwolić im na określenie sposobów wykorzystania pieniędzy. Mam to ustawione, że sumuje kwoty, które dawca wkłada w każde pole, gdy wprowadzają kwoty. Próbuję dodać maskę wprowadzania w każdym polu, ale po prostu powoduje awarię JavaScript i nic nie robi. Oto kod obecnie mam, które działa doskonale przed wszystkimi maskami:Maska wejściowa jQuery nie działa

<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” jest podana nazwa klasy do wszystkich polach wejściowych, które muszą być sumowane; to także klasa, która potrzebuje maski. "giveTotal" to id całego pola.

Próbowałem kilka odmian, które znalazłem na StackOverflow i innych witryn.

Pełny Kod:

<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> 
+0

można podać kod maski, który jest przyczyną błędu? –

+0

Jak już powiedziałem, próbowałem wielu odmian. Miałem nadzieję, że zadziała to "$ (" .toTotal ") .mas (" 000,000.00 ', {reverse: true}); '. Próbowałem również odmiany, które znalazłem, które używały '.inputmask', zi bez '' {reverse: true} 'i 9s zamiast 0s. Nie wiem, czy miejsce docelowe mogło również stanowić problem. Moją pierwszą opcją było umieszczenie tego kodu na linii przed 'var calcTot = function() {'. Próbowałem też tego na końcu funkcji gotowej i na środku. – Andrew

+0

Czy możesz podać pełną próbkę kodu w pytaniu, ponieważ nie można odpowiedzieć, nie widząc konkretnego problemu. Jedynym rozwiązaniem, jakie mogę wymyślić, nie jest to, że skrypty Mask Plugin nie zostały uwzględnione. –

Odpowiedz

7

Nie ma biblioteki skrypt maskowanie odwołuje się przykładowy kod. Należy pobrać Digital Bush Masked Input Plugin Script i skopiować go do folderu JS.

Następnie dodać następujące odniesienie skryptu po linii „jquery.js”:

<script src="/js/jquery.maskedinput.min.js"></script> 
+0

Dziękuję! Wiedziałem, że musi to być coś niesamowicie małego, czego mi brakowało. – Andrew