簡體   English   中英

JavaScript計算字段

[英]JavaScript calculated field

我只是看不出我做錯了什么...它沒有計算“stunden”字段。

我身邊有一些小錯誤,我無法看到它。

編輯:現在一切正常

 $(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> 

問題是您在.stunden字段中按下某個鍵時重新計算,因此您應該將事件移動到其他輸入或父行。 你需要這樣的東西。

$('.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);
});

讓我來試試你原來KEYUP代碼.ends ,我只是想說明如何為下面的代碼工作

  • 調用.starts ,我們目前在tr>td>input ,所以需要通過parent()備份到tr然后我們在其元素中找到.starts還有.ends
  • find .studen也處於狀態tr>td>input ,所以備份到td然后通過next()轉到下一個td然后找到.studen

     $(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); }); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM