asp.net中JavaScript數據驗證實現代碼
更新時間:2010年05月21日 02:37:40 作者:
我對JavaScript一直不了解。常常為了一點點的數據驗證和無刷新就去動用AJAX,實在不爽——有點殺雞用牛刀的感覺。
今天在做一個數據修改的頁面,頁面上有一個DropDownList控件,綁定的是實體中的重要屬性,我希望用戶在修改該控件值的時候,提示用戶,他修改了該控件的值。所以為該下拉控件加上了如下語句。
DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");
似乎不錯,不僅有提示效果,也不需要刷新頁面。可是當我打開頁面進行測試的時候就發(fā)現了問題,當我把下拉控件的值改回原值的時候,它還是會出現提示,這樣明顯會給用戶一種莫名其妙的感覺。怎么辦呢,用AJAX 進行服務端驗證?這想法太邪惡了,我決定嘗試用JS在客戶端實現。
實現的算法很簡單,首先我去搜索當頁面加載后立刻執(zhí)行JS的方法,用于獲取下拉控件綁定數據后的初始值。借助GOOGLE獲得了如下的成果
window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}
我的理解如下:
第1行: 頁面載入后即執(zhí)行function()——function是關鍵字吧,怪怪的用法,暫不理他。
第2行: 通過控件ID獲取控件的對象,這個var有點object的感覺
第3行: 獲取控件當前選中行的值
這下好了,再修改下代碼就實現我的要求了。
//后臺代碼
DDLmaterial.Attributes.Add("onchange", "changeAlert()");
前端
<script type ="text/javascript" >
var first;
var ddl;
window.onload = function() {
ddl= document.getElementById('DDLmaterial');
first =ddl.options[ddl.selectedIndex].text;
}
function changeAlert() {
var sencond = ddl.options[ddl.selectedIndex].text;
if (sencond != first) {
alert("注意:您修改了物品類型!");
}
}
</script>
總結一下:突然發(fā)現VS2008居然寫JS代碼的時候也有智能提示了(這實在太棒了,菜鳥的福音,JS代碼貌似是執(zhí)行到哪算到哪,出錯也不告訴你),看來我已經OUT了 囧....
復制代碼 代碼如下:
DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");
似乎不錯,不僅有提示效果,也不需要刷新頁面。可是當我打開頁面進行測試的時候就發(fā)現了問題,當我把下拉控件的值改回原值的時候,它還是會出現提示,這樣明顯會給用戶一種莫名其妙的感覺。怎么辦呢,用AJAX 進行服務端驗證?這想法太邪惡了,我決定嘗試用JS在客戶端實現。
實現的算法很簡單,首先我去搜索當頁面加載后立刻執(zhí)行JS的方法,用于獲取下拉控件綁定數據后的初始值。借助GOOGLE獲得了如下的成果
復制代碼 代碼如下:
window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}
我的理解如下:
第1行: 頁面載入后即執(zhí)行function()——function是關鍵字吧,怪怪的用法,暫不理他。
第2行: 通過控件ID獲取控件的對象,這個var有點object的感覺
第3行: 獲取控件當前選中行的值
這下好了,再修改下代碼就實現我的要求了。
//后臺代碼
DDLmaterial.Attributes.Add("onchange", "changeAlert()");
前端
復制代碼 代碼如下:
<script type ="text/javascript" >
var first;
var ddl;
window.onload = function() {
ddl= document.getElementById('DDLmaterial');
first =ddl.options[ddl.selectedIndex].text;
}
function changeAlert() {
var sencond = ddl.options[ddl.selectedIndex].text;
if (sencond != first) {
alert("注意:您修改了物品類型!");
}
}
</script>
總結一下:突然發(fā)現VS2008居然寫JS代碼的時候也有智能提示了(這實在太棒了,菜鳥的福音,JS代碼貌似是執(zhí)行到哪算到哪,出錯也不告訴你),看來我已經OUT了 囧....
您可能感興趣的文章:
相關文章
asp.net EXECUTENONQUERY()返回值介紹
前些日子作一些數據項目的時候 在ADO.NET 中處理 ExecuteNonQuery()方法時,總是通過判斷其返回值是否大于0來判斷操作時候成功 。但是實際上并不是這樣的,下面詳細介紹一下,有需要的朋友可以參考2013-08-08Jenkins編譯.NET?Core、.NET?Framework項目并遠程部署到IIS
這篇文章介紹了Jenkins編譯.NET?Core、.NET?Framework項目并遠程部署到IIS的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04.net core版 文件上傳/ 支持批量上傳拖拽及預覽功能(bootstrap fileinput上傳文件)
本篇內容主要解決.net core中文件上傳的問題 開發(fā)環(huán)境:ubuntu+vscode.本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2017-03-03國產化之銀河麒麟安裝.NetCore包管理器方式(步驟詳解)
這篇文章主要介紹了國產化之銀河麒麟安裝.NetCore-包管理器方式,本文給大家分享安裝步驟及安裝命令,對銀河麒麟安裝.NetCore相關知識感興趣的朋友一起看看吧2022-03-03