验证时阻止日历控件打开
Posted
技术标签:
【中文标题】验证时阻止日历控件打开【英文标题】:On validation prevent calender control to open 【发布时间】:2019-08-31 12:36:12 【问题描述】:我想阻止在验证触发时打开保存按钮上的日历控件,我无法找到如何阻止它
我在表单中有一个日历控件,在验证后选择日期验证在保存按钮上触发它将直接关注日历控件并自动打开日历,业务不想打开日历控件 html
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="form-group datepicker">
<label>Project Start Date </label>
<asp:TextBox ID="ProjectStartDate" TabIndex="27" ClientIDMode="Static" runat="server" CssClass="form-control"></asp:TextBox>
<asp:HiddenField ID="hdnProjectStartDate" runat="server" Value="" />
</div>
</div>
我想阻止在保存按钮上打开日历 让我知道那里是否有任何解决方案
谢谢
【问题讨论】:
不看相关代码,很难给你一个明确的答案。 【参考方案1】:我已经解决了这个问题以更改 formValidation.JS 在这个文件中有一个函数
// Determined the first invalid field which will be focused on automatically
var ns = this._namespace;
for (var i = 0; i < this.$invalidFields.length; i++)
var $field = this.$invalidFields.eq(i),
autoFocus = this.isOptionEnabled($field.attr('data-' + ns + '-field'), 'autoFocus');
if (autoFocus)
// Focus the field
//$field.focus();
return false;
break;
验证时它将自动聚焦该元素,聚焦后日历控件将 因为焦点而自动打开
评论此行以防止将注意力集中在日历控件上
$field.focus();
谢谢!!
【讨论】:
【参考方案2】:您使用的是什么日历或日期选择器控件? jQuery UI、Telerik AJAX、控制工具包 AJAX、剑道?
对于一般的 ASP.NET 验证方案,文本框不会自动聚焦。为此,您需要将以下属性显式设置为 True:
SetFocusOnError="true"
<asp:TextBox runat="server" ID="ProjectStartDate"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="* Required"
ForeColor="Red" ControlToValidate="ProjectStartDate" SetFocusOnError="false">
</asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Submit" />
您可以检查您的代码隐藏是否已在某处定义此属性。
【讨论】:
我用过jquery日期选择器控件 会直接转到formValidation.js以上是关于验证时阻止日历控件打开的主要内容,如果未能解决你的问题,请参考以下文章