2017-11-28 11 views
2

색인 테이블에 평일을 표시하려는 면도날 페이지가 있습니다. 이 계산을 수행하고 간단한 JS 함수로 클라이언트 측에 표시하고 싶습니다.텍스트 필드가로드 될 때 JS 함수가 자동으로 호출됩니다.

페이지 :

@foreach (var item in Model.Trainings) { 
    <tr> 
     <td> 
      <p call_function?='getWeekday(@item.Since)'></p> <!-- I want weekday to be displayed here --> 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Since) 
     </td> 
    </tr> 
} 

JS 기능 : 이름이나 표현 방법의이 종류의 이름은 어떻게

<script> 
     function getWeekday(date) { 
      var weekdays = ({ 
       et: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"], 
       en: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
      }); 

      var d = new Date(date); 
      var n = weekdays['et'][d.getDay()]; // currentCultureCode 
      return n; 
     } 
</script> 

있습니까?

답변

1

요소가 DOM에서 생성 될 때 발생하는 요소 수준 이벤트가 없습니다.

대신 HTML을 작성한 다음 DOM이로드 될 때 함수를 실행할 수 있습니다. 당신은 또한 다음과 같이 코드를 더 확장하기 위해 뭔가를 요소에 data 속성에 item.Since 특성에서 오는 날짜를 저장할 수

function getWeekday(date) { 
 
    var weekdays = ({ 
 
    et: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"], 
 
    en: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
 
    }); 
 

 
    var d = new Date(date); 
 
    var n = weekdays['et'][d.getDay()]; // currentCultureCode 
 
    return n; 
 
} 
 

 
[].forEach.call(document.querySelectorAll('table p'), function(p) { 
 
    var date = new Date(p.dataset.since); 
 
    p.textContent = getWeekday(date); 
 
});
<table> 
 
    <tr> 
 
    <td><p data-since="2017-11-28"></p></td> 
 
    <td>2017-11-28</td> 
 
    </tr> 
 
    <tr> 
 
    <td><p data-since="2017-11-29"></p></td> 
 
    <td>2017-11-29</td> 
 
    </tr> 
 
</table>

또는 jQuery를에을 :

jQuery(function($) { 
    $('table p').text(function() { 
    var date = new Date($(this).data('since')); 
    return getWeekday(date); 
    }); 
}); 
+0

감사합니다. 쿠키있어! – Taurib