2017-12-27 5 views
0

fiddle을 참조하십시오. (경고는 정보 용입니다.)날짜를 기준으로 수업을 추가하는 중에 날짜가 사라짐

Chrome을 사용하는 동안 날짜는 mm/dd/yyyy (비어 있음)와 비슷하지만 IE에서는 다음 날짜로 이동하기 전까지 올바르게 표시됩니다.

클래스는 정확하지만 날짜는 사라집니다.

어떻게 체류 할 수 있습니까?

var now = new Date(); 
alert(now); 
$('input[type=date]').val(function(i, v) { 
    var myDate = new Date(v); 
    if (now > myDate) { 
    $(this).addClass('expired'); 
    } 
    alert(myDate); 
}); 

내가 해봤 다른 날짜 형식 :

<tr id="1"> 
    <td> 
    <input type="date" class="expiration-date" value="12-28-2017" /> 
    <input type="date" class="expiration-date" value="12/12/2017" /> 
    <input type="date" class="expiration-date" value="2016-02-21" /> 
    </td> 
</tr> 

CSS :

.expiration-date { 
    color: green; 
} 

.expired { 
    color: red; 
} 

Updated code 작품. "return v"에 감사드립니다.

+0

패스를 다음과 같이 코드를 교체하십시오. 'window.now' –

답변

0

코드에 두 가지 문제점이 있습니다.

  1. <input type="date"> 태그에서 날짜 값을 입력하기위한 올바른 형식은 yyyy-mm-dd이다. 나머지 형식은 작동하지 않습니다.

    설명서는 here을 클릭하십시오. 주의 할

    한 가지 표시된 날짜 형식이 실제 값과 다른 점이다 - 날짜 값은 항상 YYYY-MM-포맷 반면에 표시되는 날짜 형식은 사용자의 브라우저의 설정 로케일에 따라 선택됩니다 dd.

  2. .val()의 콜백 함수는 입력 태그 값으로 설정 될 값을 반환해야합니다. 코드에서 콜백 함수는 아무 것도 반환하지 않습니다. 전역 변수로 now``

var now = new Date(); 
alert(now); 
$('input[type=date]').val(function(i, v) { 
    var myDate = new Date(v); 
    if (now > myDate) { 
    $(this).addClass('expired'); 
    } 
    alert(myDate); 
    return v; 
});