[英]Telerik asp.net client side validation
我想在回發之前先對表單進行客戶端驗證,所以我正在使用onclientclick事件來驗證表單,如果有效,請做一些服務器端的工作。
這是我的代碼:
<head runat="server">
<script type="text/javascript" id="Script1">
function performCheck() {
return $("TextBox1").val() == "";
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server" >
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
<div>
<asp:TextBox ID="TextBox1" runat="server" CausesValidation="true" ValidationGroup="thisGpo"></asp:TextBox>
<asp:RequiredFieldValidator EnableClientScript="true" ID="RequiredFieldValidator1" ValidationGroup="thisGpo" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:Button OnClientClick="performCheck()" ID="Button1" runat="server" Text="Button" ValidationGroup="thisGpo" CausesValidation="true" /> </div>
</form>
</body>
問題是,如果我使用telerik控件,它們會添加標簽
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
</telerik:RadScriptManager>
而且這種形式的地獄導致回發覆蓋了我的代碼,因此令人沮喪。
我的老板強迫我們使用Telerik,因為他們有這個花哨的numericTextBox,並且他在付款。
試圖與TELERIK聯系,但他們提到他們無法為我們提供支持,因為我們的版本已過期。
由於要進行客戶端驗證,因此可以添加“ return false;”。 到OnClientClick
<asp:Button OnClientClick="performCheck(); return false;" ID="Button1" runat="server" Text="Button" ValidationGroup="thisGpo" CausesValidation="true" />
然后要調用服務器端,我建議要么創建一個調用服務器端方法的隱藏按鈕,要么使用ajax。
使用隱藏按鈕:
<asp:Button runat="server" ID="btnDoTheThing" style="display: none;" OnClick="btnDoThething_Click"></asp:Button>
服務器端代碼:
protected void btnDoTheThing_Click(object sender, EventArgs e)
{
// Do The Thing
}
因此,一旦javascript驗證完成並且是有效的,然后使用jQuery像調用這樣單擊按鈕
$("#btnDoTheThing").click();
另外,一旦驗證有效,就可以使用Ajax調用服務器端代碼。
發生這種行為的原因是Unobtrusive驗證,這是針對.Net 4.5版本的項目構建的默認驗證。
因此,當您創建.NET 4.5 Telerik網站時,默認的Web窗體具有RadScriptManager。 這意味着Telerik控件隨附的jQuery版本是通過ScriptManager注冊為jquery的,因此您需要指定jQuery和驗證腳本的注冊順序。無干擾驗證的驗證腳本(WebForms.js和WebUIValidation.js)在這種情況下不可用,因此您還需要在網站上安裝它們。 下面的步驟用於設置無干擾的驗證:打開“工具”>“庫軟件包管理器”>“軟件包管理器控制台”,然后運行以下命令以使用ScriptManager安裝Web窗體的Microsoft Ajax優化包:
PM> Install-Package Microsoft.AspNet.ScriptManager.WebForms -Version xxx(您可以在其下載頁面中查看此NuGet軟件包的當前版本)。這將在網站上安裝腳本文件WebForms.js和WebUIValidation.js。
配置RadScriptManager以指定在驗證腳本之前注冊jQuery。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.