在一个使用默认引导布局的MVC5项目中,我使用以下代码将某个类的所有输入设置为jQuery UI日期选择器小部件:
$(".jqueryui-marker-datepicker").datepicker({
dateFormat: "yy-mm-dd",
changeYear: true,
showOn: "button"
}).next("button").button({
icons: { primary: "ui-icon-calendar" },
label: "Select a date",
text: false
});
以下是执行上述调用后由Razor和jQuery UI呈现的超文本标记语言,去掉了一些aria
和validation data
属性:
<div class="form-group">
<label class="control-label col-md-2" for="Time">Date</label>
<div class="col-md-10">
<input class="form-control jqueryui-marker-datepicker hasDatepicker valid" id="Time" name="Time" type="text" value="2015-05-02">
<button type="button" class="ui-datepicker-trigger ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" role="button" title="Select a date">
<span class="ui-button-icon-primary ui-icon ui-icon-calendar"></span><span class="ui-button-text">Select a date</span>
</button>
<span class="text-danger field-validation-valid" data-valmsg-for="Time" data-valmsg-replace="true"></span>
</div>
</div>
这样做的问题是日期选择器按钮出现在日期输入的下面。这是因为bootstrap .form-control
类为输入提供了display: block
。如果我在Chrome的控制台中编辑为inline-block
,这个按钮就会立即出现在输入的右边,正好是我想要的位置。
现在我可以添加一个新的css规则,如下所示:
.form-control.jqueryui-marker-datepicker {
display: inline-block;
}
但我只是不确定这是不是最好的方式,对bootstrap所做的布局魔力的影响最小。
发布于 2015-05-07 20:50:41
添加以下内容:
class="form-control"
https://stackoverflow.com/questions/29988985
复制相似问题