Там есть поле «DatePicker», мне нужно взять дату и вставить возраст в поле «NumericTextBox»
Спасибо
<div>
<sq8:DatePicker runat = "server" ID = "dateDatePicker">
<ClientEvents OnDateSelected = "get_current_age"></ClientEvents>
</sq8:DatePicker>
<sq:BindableControl runat = "server" TargetControlID = "dateDatePicker" DataField = "Date"></sq:BindableControl>
</div>
<div class = "sqf-col-xs-4 sqf-control-group-v">
<sq8:Label runat = "server" Text = "Age" ID = "lblAge"></sq8:Label>
<sq8:NumericTextBox runat = "server" ID = "txtAge"></sq8:NumericTextBox>
</div>
Связанная проблема: stackoverflow.com/questions/9/…. Просто передайте значение в коде программной части и выполните расчет возраста, как в связанной публикации, а затем присвойте результат текстовому полю.
Как это реализовать с помощью jQuery?
@MichaelReed jQuery не добавляет в Dates ничего больше, чем доступно через собственный JavaScript. Так что вы можете делать, как говорит DevZer0. Вы можете использовать jQuery для получения значения из поля даты, но после этого все сводится к использованию собственных дат. Однако свидания с JS могут быть проблемой, особенно для непосвященных. Использование другой библиотеки дат, такой как MomentJS, может упростить вашу жизнь и позволить сохранить больше волос. Легко преобразовать строку даты в объект momentJS, а затем сравнить ее с сегодняшней датой, чтобы получить возраст в годах.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Этого можно добиться с помощью jQuery. См. Пример ниже.
Наряду с jQuery я использую moment.js. Причина этого в том, что при работе с обычными функциями даты javascript возникает множество проблем в среде с несколькими устройствами / браузерами. Чтобы избежать этого, рекомендуется использовать стандартную / хорошо протестированную библиотеку дат JS. Подробнее о Moment.JS
<html lang = "en">
<head>
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel = "stylesheet" href = "//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel = "stylesheet" href = "/resources/demos/style.css">
<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>
<script src = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
</head>
<body>
<p>Date: <input type = "text" id = "datepicker"></p>
Your Age is: <span id = "age">Pick a date</span>
<script>
$(document).ready(function() {
$( "#datepicker" ).datepicker();
$('#datepicker').change(function(){
var pickedDate = $(this).val();
var a = moment(pickedDate,"MM/DD/YYYY");
var b = moment(new Date());
var c = b.diff(a,'years',true);
$('#age').html(Math.floor(c) + ' year(s)');
});
} );
</script>
</body>
</html>Надеюсь, это поможет.
Привет @Michael, если этот ответ соответствует вашему требованию, не могли бы вы пометить его как принятый ответ. / Пожалуйста, проголосуйте за. Спасибо.
вам нужно будет проанализировать дату в объекте даты javascript, а затем выполнить дельту между Date.now - dateParsed (а затем разделить на миллисекунды в течение года)