如何在更改另一个 TextBox 值时设置 TextBox 值
How to set a TextBox value when another TextBox value is changed
我有两个带有这样的日期选择器的文本框。
<script type="text/javascript">
$(function () {
$('#value_date').datetimepicker({ format: 'MM/DD/YYYY' });
$('#run_date').datetimepicker({ format: 'MM/DD/YYYY hh:mm a' });
});
</script>
<div class='input-group date' id='value_date'>
<input type="text" id="txtValueDate" class="form-control" runat="server" placeholder="Value Date"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<div class='input-group date' id='run_date'>
<input type="text" id="txtRunDate" class="form-control" runat="server" placeholder="Run Date" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
然后,当 value_date
的值发生变化时(例如 03/31/2016),run_date
会自动设置为 value_date
昨天(03/30/ 2016) 作为默认 run_date,但仍然可以通过 datetimepicker 进行更改。
我该怎么做?
我认为当 value_date 的值发生变化时,您可以使用 onselect 事件,例如:
$(".txtValueDate").datetimepicker({
onSelect: function(dateText) {
var date = new Date();
date.setDate(date.getDate()-1);
var yesterday = date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear();
$('#txtRunDate').val(yesterday);
}});
要获取以前的日期,一种方法可能如下所示(冗长的代码,因为我使用了 javascript Date
的函数):
$("#txtValueDate").change(function() {
var valueDate = new Date($(this).val());
var runDate = new Date();
runDate.setDate(valueDate.getDate() - 1);//previous date
$("#run_date").val(
(runDate .getMonth() + 1)
+ '/' + runDate.getDate()
+ '/' + runDate.getFullYear()
);
});
你应该使用输入框的change事件。您还需要更正您使用的 id 选择器。最后,我建议你包括 momentjs 库(link)来计算和格式化前一天的显示:
$('#txtValueDate').change(function(){
$('#txtRunDate').val(moment($(this).val()).subtract(1, 'days').format('MM/DD/YYYY'));
});
我有两个带有这样的日期选择器的文本框。
<script type="text/javascript">
$(function () {
$('#value_date').datetimepicker({ format: 'MM/DD/YYYY' });
$('#run_date').datetimepicker({ format: 'MM/DD/YYYY hh:mm a' });
});
</script>
<div class='input-group date' id='value_date'>
<input type="text" id="txtValueDate" class="form-control" runat="server" placeholder="Value Date"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<div class='input-group date' id='run_date'>
<input type="text" id="txtRunDate" class="form-control" runat="server" placeholder="Run Date" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
然后,当 value_date
的值发生变化时(例如 03/31/2016),run_date
会自动设置为 value_date
昨天(03/30/ 2016) 作为默认 run_date,但仍然可以通过 datetimepicker 进行更改。
我该怎么做?
我认为当 value_date 的值发生变化时,您可以使用 onselect 事件,例如:
$(".txtValueDate").datetimepicker({
onSelect: function(dateText) {
var date = new Date();
date.setDate(date.getDate()-1);
var yesterday = date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear();
$('#txtRunDate').val(yesterday);
}});
要获取以前的日期,一种方法可能如下所示(冗长的代码,因为我使用了 javascript Date
的函数):
$("#txtValueDate").change(function() {
var valueDate = new Date($(this).val());
var runDate = new Date();
runDate.setDate(valueDate.getDate() - 1);//previous date
$("#run_date").val(
(runDate .getMonth() + 1)
+ '/' + runDate.getDate()
+ '/' + runDate.getFullYear()
);
});
你应该使用输入框的change事件。您还需要更正您使用的 id 选择器。最后,我建议你包括 momentjs 库(link)来计算和格式化前一天的显示:
$('#txtValueDate').change(function(){
$('#txtRunDate').val(moment($(this).val()).subtract(1, 'days').format('MM/DD/YYYY'));
});