2016-05-30 17 views
7

Neyi yanlış yaptığımı göremiyorum ... "Stunden" alanını hesaplamıyor.JavaScript hesaplanmış alanı

Benim tarafımdan küçük bir hata var ve ben onu göremiyorum.

REDAKTE: şimdi tüm olarak çalışıyor olması gerektiği

$(document).ready(function(){ 
 
    $('.item').keyup(function(){ 
 

 
    var starts = 0; 
 
    var ends = 0; 
 
    var stunden = 0; 
 

 
    if (!isNaN($(this).find(".starts").val())) { 
 
     starts = $(this).find(".starts").val(); 
 
    } 
 
    if (!isNaN($(this).find(".ends").val())) { 
 
     ends = $(this).find(".ends").val(); 
 
    } 
 

 
    stunden = ends - starts; 
 
    $(this).find(".stunden").val(stunden); 
 

 
    });  
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <table id="t1" class="table table-hover"> 
 
    <tr> 
 
     <th class="text-center">Start Time</th> 
 
     <th class="text-center">End Time</th> 
 
     <th class="text-center">Stunden</th> 
 
    </tr> 
 
    <tr id="row1" class="item"> 
 
     <td><input name="starts[]" class="starts form-control" ></td> 
 
     <td><input name="ends[]" class="ends form-control" ></td> 
 
     <td><input name="stunden[]" class="stunden form-control" readonly="readonly" ></td> 
 
    </tr> 
 
    <tr id="row2" class="item"> 
 
     <td><input name="starts[]" class="starts form-control" ></td> 
 
     <td><input name="ends[]" class="ends form-control" ></td> 
 
     <td><input name="stunden[]" class="stunden form-control" readonly="readonly" ></td> 
 
    </tr> 
 
    </table> 
 
</div>

+0

? Beklenen çıktı nedir? – brk

+0

sadece stunden giriş alanını başlangıç ​​ve bitiş alanlarından hesaplamak için. Stunden alan readonly ve başlar ve biter arasındaki bir farktır. – lewis4u

+1

'.stunden' salt okunur ve bu giriş denetimindeki bir anahtar olayını dinlersiniz. Bu nedenle bu kodun çalıştırılması mümkün değildir – Dieterg

cevap

5

sorun kilit .stunden alanlarda basıldığında size olayı hareket etmeliyiz böylece, yeniden hesaplama olmasıdır diğer girdiler veya üst sıra. Böyle bir şeye ihtiyacın olacak.

$('.item').keyup(function(){ 
    var starts = 0; 
    var ends = 0; 
    var stunden = 0; 
    if (!isNaN($(this).find(".starts").val())) { 
    starts = $(this).find(".starts").val(); 
    } 
    if (!isNaN($(this).find(".ends").val())) { 
    ends = $(this).find(".ends").val(); 
    } 
    stunden = starts - ends; 
    $(this).find(".stunden").val(stunden); 
}); 
+1

nihayet bu düzeltme ile çalışıyor – lewis4u

+1

@ lewis4u Arama yapmayı denemek isteyebilirsiniz Bir değişikliğin cevabı için: Dünyada bu problemi yaşamakta olan ilk kişi olmanızın şansı tam olarak sıfır ** ** Ayrıca, StackOverflow ile ilgili yorumlarda da takip soruları göndermeyin: – Tomalak

+1

@ lewis4u, Tomalak ile aynı fikirdeyim, ama sadece size yardımcı olmak için, bir göz atın: http://stackoverflow.com/questions/9640266/convert-hhmmss-string-to-seconds-only-in-javascript – SZenC

1

nasıl kodunun altında çalışma

  • çağrı .starts, şu anda tr>td>input yılında, bu yüzden bulmak tr sonra parent() tarafından Desteğe ihtiyacım olduğunu ben sadece açıklamak istiyorum, bana orijinal keyup kodu .ends deneyelim Ayrıca .ends
  • .studen bulmak onun elements.As içeride .starts devlet tr>td>input de, bu nedenle yedekleme için td ve sonraki td numaralı telefona gidin(), ardından .studen'u bulun. Bu kod yapmak için varsayalım ne

    $(document).ready(function(){ 
        $('.ends').keyup(function(){ 
          var starts = 0; 
          var ends = 0; 
          var stunden = 0;    
          if (!isNaN($(this).parent().parent().find(".starts").val())) { 
           starts = $(this).parent().parent().find(".starts").val(); 
          } 
          if (!isNaN($(this).parent().parent().find(".ends").val())) { 
           ends = $(this).parent().parent().find(".ends").val(); 
          }    
          stunden = starts - ends; 
          $(this).parent().next().find('.stunden').val(stunden); 
    
        });  
    }); 
    
+0

o doesn $ ('.post') ile çalışıyorum.komut (function() {----- ama $ ('. item') ile. keyup (function() {çalışır – lewis4u

+0

Onun çalışması, ru benim kod test! –

+0

Evet şimdi test ettim, işe yarıyor .... ama benim için çok daha kolay o ".ends" yerine sadece bir kelime ".item" değiştirin – lewis4u

İlgili konular