2016-08-31 2 views
0

Я работаю с jQuery. Я создал одну форму и ее поле ввода.не может получить сумму текстового значения lable с помощью jquery

У меня есть значение поля ввода отображения в lable, и вы хотите получить общую сумму этой информации. Поэтому я написал код, как показано ниже:

$("#band_members").keyup(function(){ 
     var val = $(this).val(); 
     if (!isNaN(val)){ 
      var ttl_band = val*30; 
      $('label[for="' + this.id + '"]').text(ttl_band); 
      calculateSum(); 
     } 
    }); 

    $('#dj').change(function() { 
     var val = $(this).val(); 
     if (!isNaN(val)){ 
      $('label[for="' + this.id + '"]').text(val); 
      calculateSum(); 
     } 
    }); 

    $("#extra_round").keyup(function(){ 
     var val = $(this).val(); 
     if (!isNaN(val)){ 
      var ex_round = val*100; 
      $('label[for="' + this.id + '"]').text(ex_round); 
      calculateSum(); 
     } 
    }) 

И моя функция calculateSum это выглядит, как показано ниже:

function calculateSum() { 
    var sum = 0; 
    //iterate through each textboxes and add the values 
    jQuery(".numLabel").each(function() { 

     //add only if the value is number 
     if(!isNaN(this.text) && this.text.length!=0) { 
      alert(this.text); 

      sum += parseFloat(this.text); 
      //console.log(sum); 
     } 

    }); 
    //.toFixed() method will roundoff the final sum to 2 decimal places 
    jQuery(".total_sum").html(sum.toFixed(2)); 
} 

Но вот моя функция не называют. Итак, что мне нужно изменить в моем jQuery?

+0

добавить свой HTML или предоставить нам snippert или https://jsfiddle.net/ – Sarath

+0

Это моя [ссылка] (https://jsfiddle.net/n0nzs8d8/). Где вы можете увидеть мой код –

+0

Вам нужно использовать '$ (this) .text()' вместо 'this.text' – Satpal

ответ

1

Этикетка не имеет text свойство, так что вам нужно использовать либо $(this).text() или this.textContent

function calculateSum() { 
    var sum = 0; 
    //iterate through each textboxes and add the values 
    jQuery(".numLabel").each(function() { 
     var text = $(this).text(); //this.textContent 
     //add only if the value is number 
     if (!isNaN(text) && text.length != 0) { 
      //alert(text); 

      sum += parseFloat(text); 
      //console.log(sum); 
     } 

    }); 
    //.toFixed() method will roundoff the final sum to 2 decimal places 
    jQuery(".total_sum").html(sum.toFixed(2)); 
} 

DEMO

Смежные вопросы