2017-10-16 6 views
1

표에서 건너 뛴 날짜 열의 경우 마지막 행의 기본값은 항상 숫자가 아닌 "last"단어입니다. 이제, 결과 날짜가 "NaN/NaN/NaN"으로 표시됩니다. Nil과 같이 sth로 바꿀 수있는 방법이 있습니다.NaN/NaN/NaN 제거 방법

감사합니다. 여기

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

+0

'day' 입력을'text'에서'number'로 바꾸지 않으시겠습니까? 숫자 입력 만 원하기 때문에 의미가 있습니다. 이것도'NAN'을 제거합니다 – NewToJS

+0

건은 건너 뛴 날의 마지막 줄에 대한 것이고, 기본값은 마지막 일 것입니다. 숫자가 아닙니다 – epiphany

+0

다음은 예제입니다 https://jsfiddle.net/1ayn5tng/ 이유는 확실하지 않습니다 당신은 어쩌면 나의 예제가 당신이 원하는 것이 아닌 last의 기본값을 가질 것이다. – NewToJS

답변

1

당신은 내가 input.day 값을 확인 iSNaN을 사용했습니다

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

솔루션과 함께 할 것입니다

희망이 도움이 될 것입니다.

+0

@ tam Welcome buddy :) – Shiladitya

+0

오, 하나의 작은 문제, 하루를 건너 뛰도록 변경하려고 할 때 시작 날짜가 결과 날짜와 동일합니까?, 감사합니다 – epiphany

+0

시간대 문제 – epiphany

1

언제든지 과 같은 값으로 Null 값을 덮어 쓸 수있는 마지막 셀을 수동으로 업데이트 할 수 있습니다.

이 다음 예에서 볼 수있다 :

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

희망이 도움이! :)

+0

도움 주셔서 감사합니다. – epiphany