Bootstrap 日期选择器无法更改结束日期
Bootstrap Datepicker unable to change endDates
我得到名称为“Type”且值为“Standard”和“”的单选按钮审判”。然后我还有一个文本框,其中 id 是“datepicker”。
因此,当我单击标准按钮时,日期选择器的结束日期假设为 3 天 ,而当我单击试用按钮时,日期选择器的结束日期假设为 1 天.
我现在的问题是,当我选中带有“标准”值的单选按钮时,结束日期变为3 天。但是,当我选中带有“试用”值的单选按钮时,结束日期仍然是3 天。否则,当我首先检查“Trial”时,该值将变为 1 天,当检查“Standard" endDate 的结果将相同,即 1 天 。
我已经尝试了 $(".datepicker").datepicker("refresh");
和 $(".datepicker").datepicker("destroy");
,但似乎不起作用。
<script type="text/javascript" src="~/Scripts/jquery-2.0.2.js"></script>
<link rel="stylesheet" type="text/css" href="~/Content/datepicker.min.css">
<script type="text/javascript" src="~/Scripts/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css">
<script type="text/javascript">
$(window).load(function () {
$('.datepicker').val('dd/mm/yyyy');
dateExpiry();
});
$("input[name='Type']").change(function () {
$('.datepicker').val('dd/mm/yyyy');
dateExpiry();
});
function dateExpiry() {
var type = $("input[name='Type']:checked").val();
if (type == 'Trial') {
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+1d',
autoclose: true
});
}
else if (type == 'Standard') {
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+3d',
autoclose: true
});
}
};
</script>
不要创建新的日期选择器。使用 setEndDate
方法设置结束日期值。
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+1d',
autoclose: true
});
ChangeRange();
$("input[name='Type']").change(ChangeRange);
function ChangeRange() {
if ($("input[name='Type']:checked").val()=="Standard") {
$('.datepicker').datepicker('setEndDate', '+3d');
}
else if ($("input[name='Type']:checked").val()=="Trial") {
$('.datepicker').datepicker('setEndDate', '+1d');
}
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.0/css/bootstrap-datepicker.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.0/js/bootstrap-datepicker.min.js"></script>
<div class="checkbox">
<label>
<input type="radio" name="Type" value="Standard">
Standard
</label>
</div>
<div class="checkbox">
<label>
<input type="radio" name="Type" value="Trial" checked="checked">
Trial
</label>
</div>
<div class="input-group">
<input type="text" class="form-control datepicker" value="21/06/2017">
<div class="input-group-addon">
<span class="glyphicon glyphicon-th"></span>
</div>
</div>
我得到名称为“Type”且值为“Standard”和“”的单选按钮审判”。然后我还有一个文本框,其中 id 是“datepicker”。 因此,当我单击标准按钮时,日期选择器的结束日期假设为 3 天 ,而当我单击试用按钮时,日期选择器的结束日期假设为 1 天.
我现在的问题是,当我选中带有“标准”值的单选按钮时,结束日期变为3 天。但是,当我选中带有“试用”值的单选按钮时,结束日期仍然是3 天。否则,当我首先检查“Trial”时,该值将变为 1 天,当检查“Standard" endDate 的结果将相同,即 1 天 。
我已经尝试了 $(".datepicker").datepicker("refresh");
和 $(".datepicker").datepicker("destroy");
,但似乎不起作用。
<script type="text/javascript" src="~/Scripts/jquery-2.0.2.js"></script>
<link rel="stylesheet" type="text/css" href="~/Content/datepicker.min.css">
<script type="text/javascript" src="~/Scripts/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="~/Scripts/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css">
<script type="text/javascript">
$(window).load(function () {
$('.datepicker').val('dd/mm/yyyy');
dateExpiry();
});
$("input[name='Type']").change(function () {
$('.datepicker').val('dd/mm/yyyy');
dateExpiry();
});
function dateExpiry() {
var type = $("input[name='Type']:checked").val();
if (type == 'Trial') {
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+1d',
autoclose: true
});
}
else if (type == 'Standard') {
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+3d',
autoclose: true
});
}
};
</script>
不要创建新的日期选择器。使用 setEndDate
方法设置结束日期值。
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
startDate: '-0d',
endDate: '+1d',
autoclose: true
});
ChangeRange();
$("input[name='Type']").change(ChangeRange);
function ChangeRange() {
if ($("input[name='Type']:checked").val()=="Standard") {
$('.datepicker').datepicker('setEndDate', '+3d');
}
else if ($("input[name='Type']:checked").val()=="Trial") {
$('.datepicker').datepicker('setEndDate', '+1d');
}
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.0/css/bootstrap-datepicker.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.0/js/bootstrap-datepicker.min.js"></script>
<div class="checkbox">
<label>
<input type="radio" name="Type" value="Standard">
Standard
</label>
</div>
<div class="checkbox">
<label>
<input type="radio" name="Type" value="Trial" checked="checked">
Trial
</label>
</div>
<div class="input-group">
<input type="text" class="form-control datepicker" value="21/06/2017">
<div class="input-group-addon">
<span class="glyphicon glyphicon-th"></span>
</div>
</div>