我有一个表单(在aspx页面中),我在同一表单上使用服务器端验证(验证控件)和jQuery验证。
在Textboxes上我使用服务器端验证,在提交按钮上我正在使用jQuery验证。
我在使用两者时遇到问题。
表格: -
sudo rm -rf /private/var/log/asl/*.asl
jQuery代码: -
<form id="form1" runat="server">
<label>Start Date: </label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="txtstartDate" ForeColor="Red" Text="*" ValidationGroup="onSave" runat="server" ErrorMessage="Enter start date...!!"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtStartDate" runat="server" CssClass="form-control mytxtCalendar" placeholder="Start Date.."></asp:TextBox>
<label> End Date:</label>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtEndDate" ForeColor="Red" Text="*" ValidationGroup="onSave" runat="server" ErrorMessage="Enter end date...!!"></asp:RequiredFieldValidator>
<asp:TextBox ID="txtEndDate" runat="server" CssClass="form-control mytxtCalendar" placeholder="End Date.."></asp:TextBox>
<asp:Button ID="btnSaveShift" CssClass="btn btn-default" runat="server" Text="Save" ValidationGroup="onSave" OnClick="btnSaveShift_Click" OnClientClick="CheckDateTimes();" />
<asp:ValidationSummary ID="vlsAdd" ValidationGroup="onSave" ForeColor="Red" ShowMessageBox="true" ShowSummary="false" runat="server" />
</form>
我也尝试过以下jQuery函数,但这些函数会停止服务器端验证。
function CheckDateTimes() {
var Frm_Date = $("#<%=txtStartDate.ClientID %>").val();
var To_Date = $("#<%=txtEndDate.ClientID %>").val();
if (Frm_Date.length > 0 && To_Date.length > 0) {
if (parseDate(Frm_Date) > parseDate(To_Date)) {
alert('Start date can not be greater than to date...!!');
$("#<%=txtStartDate.ClientID %>").focus();
}
}
}
这也是: -
$("#btnSaveShift").click(function(evt){
var Frm_Date = $("#<%=txtStartDate.ClientID %>").val();
var To_Date = $("#<%=txtEndDate.ClientID %>").val();
if (Frm_Date.length > 0 && To_Date.length > 0) {
if (parseDate(Frm_Date) > parseDate(To_Date)) {
alert('Start date can not be greater than to date...!!');
$("#<%=txtStartDate.ClientID %>").focus();
evt.preventDefault();
}
}
});
答案 0 :(得分:1)
如果您需要同时使用OnClick和OnClientClick以及相同的按钮,则向OnClientClick函数添加返回true或false。请检查此链接 example
答案 1 :(得分:0)
您需要更改CheckDateTimes方法以返回bool值,然后您可以将JS方法调用更改为OnClientClick="return CheckDateTimes();"
如果返回true,则只调用服务器端。如果你需要调用服务器端验证,那么从javascript方法返回true。
检查Asp .NET Button - OnClientClick="return function()" vs OnClientClick="function()"