如何摆脱NaN / NaN / NaN

时间:2017-10-16 01:59:24

标签: javascript jquery

在表格中,对于跳过日期列,最后一行的默认值将始终为单词“last”,而不是数字。现在,结果日期显示“NaN / NaN / NaN”,有什么方法可以用nil代替它。

非常感谢。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="one">
  <th>Date</th>
  <th>Skip days</th>
  <th>Result</th>
  <tbody>
    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="10" class="day"> </td>
      <td><input type="text" class="result"> </td>
    </tr>

    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="15" class="day"> </td>
      <td><input type="text" class="result"> </td>
    </tr>

    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="last" class="day"> </td>
      <td><input type="text" class="result"> </td>
    </tr>
  </tbody>
</table>
User::find($userid);

2 个答案:

答案 0 :(得分:1)

您可以使用解决方案

&#13;
&#13;
$('input.date, input.day').on('change', function () {
  var $row = $(this).closest('tr');
  var start = $row.find('.date').val();
 
  if (!isNaN($row.find(".day").val()) && start) {
    var set = new Date(start);
    set.setDate(set.getDate() + Number($row.find(".day").val()));
    $row.find(".result").val([set.getMonth() + 1, set.getDate(), set.getFullYear()].join('/'));
    var dt = set.getFullYear() + "-" + ("0" + (set.getMonth() + 1)).slice(-2) + "-" + ("0" + set.getDate()).slice(-2);
    $row.next('tr').find('.date').attr('value', dt).trigger('change');
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="one">
  <th>Date</th>
  <th>Skip days</th>
  <th>Result</th>
  <tbody>
    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="10" class="day"> </td>
      <td><input type="text" class="result"> </td>
    </tr>

    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="15" class="day"> </td>
      <td><input type="text" class="result"> </td>
    </tr>

    <tr>
      <td><input type="date" class="date"></td>
      <td><input type="text" value="last" class="day"> </td>
      <td><input type="text" class="result"> </td>
   </tr>
 </tbody>
</table>
&#13;
&#13;
&#13;

我已使用iSNaN检查input.day

希望这会对你有所帮助。

答案 1 :(得分:1)

您可以随时手动更新最后一个单元格,以覆盖$UserID=$request->input('userid'); 值,例如:Null

这可以在以下示例中看到:

$("#one tbody tr:last-of-type .result")[0].value = 'Nil'
$('input.date, input.day').on('change', function() {
  var $row = $(this).closest('tr');
  var start = $row.find('.date').val();
  if (start) {
    var set = new Date(start);
    set.setDate(set.getDate() + Number($row.find(".day").val()));
    $row.find(".result").val([set.getMonth() + 1, set.getDate(),
      set.getFullYear()
    ].join('/'));
    var dt = set.getFullYear() + "-" + ("0" + (set.getMonth() +
      1)).slice(-2) + "-" + ("0" + set.getDate()).slice(-2);
    $row.next('tr').find('.date').attr('value', dt).trigger('change');
  }
  $("#one tbody tr:last-of-type .result")[0].value = 'Nil';
});

希望这有帮助! :)