asp.net中JavaScript數(shù)據(jù)驗(yàn)證實(shí)現(xiàn)代碼
DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");
似乎不錯(cuò),不僅有提示效果,也不需要刷新頁面??墒钱?dāng)我打開頁面進(jìn)行測(cè)試的時(shí)候就發(fā)現(xiàn)了問題,當(dāng)我把下拉控件的值改回原值的時(shí)候,它還是會(huì)出現(xiàn)提示,這樣明顯會(huì)給用戶一種莫名其妙的感覺。怎么辦呢,用AJAX 進(jìn)行服務(wù)端驗(yàn)證?這想法太邪惡了,我決定嘗試用JS在客戶端實(shí)現(xiàn)。
實(shí)現(xiàn)的算法很簡(jiǎn)單,首先我去搜索當(dāng)頁面加載后立刻執(zhí)行JS的方法,用于獲取下拉控件綁定數(shù)據(jù)后的初始值。借助GOOGLE獲得了如下的成果
window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}
我的理解如下:
第1行: 頁面載入后即執(zhí)行function()——function是關(guān)鍵字吧,怪怪的用法,暫不理他。
第2行: 通過控件ID獲取控件的對(duì)象,這個(gè)var有點(diǎn)object的感覺
第3行: 獲取控件當(dāng)前選中行的值
這下好了,再修改下代碼就實(shí)現(xiàn)我的要求了。
//后臺(tái)代碼
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>
總結(jié)一下:突然發(fā)現(xiàn)VS2008居然寫JS代碼的時(shí)候也有智能提示了(這實(shí)在太棒了,菜鳥的福音,JS代碼貌似是執(zhí)行到哪算到哪,出錯(cuò)也不告訴你),看來我已經(jīng)OUT了 囧....
- 如何使用JavaScript和正則表達(dá)式進(jìn)行數(shù)據(jù)驗(yàn)證
- Javascript級(jí)聯(lián)下拉菜單以及AJAX數(shù)據(jù)驗(yàn)證核心代碼
- js數(shù)據(jù)驗(yàn)證集合、js email驗(yàn)證、js url驗(yàn)證、js長(zhǎng)度驗(yàn)證、js數(shù)字驗(yàn)證等簡(jiǎn)單封裝
- JavaScript判斷表單提交時(shí)哪個(gè)radio按鈕被選中的方法
- JS定義網(wǎng)頁表單提交(submit)的方法
- Web表單提交之disabled問題js解決方法
- javascript 回車鍵觸發(fā)表單提交的問題
- 符合標(biāo)準(zhǔn)的js表單提交的代碼
- 可實(shí)現(xiàn)多表單提交的javascript函數(shù)
- 表單提交時(shí)自動(dòng)復(fù)制內(nèi)容到剪貼板的js代碼
- 基于JavaScript實(shí)現(xiàn)帶數(shù)據(jù)驗(yàn)證和復(fù)選框的表單提交
相關(guān)文章
asp.net EXECUTENONQUERY()返回值介紹
前些日子作一些數(shù)據(jù)項(xiàng)目的時(shí)候 在ADO.NET 中處理 ExecuteNonQuery()方法時(shí),總是通過判斷其返回值是否大于0來判斷操作時(shí)候成功 。但是實(shí)際上并不是這樣的,下面詳細(xì)介紹一下,有需要的朋友可以參考2013-08-08Jenkins編譯.NET?Core、.NET?Framework項(xiàng)目并遠(yuǎn)程部署到IIS
這篇文章介紹了Jenkins編譯.NET?Core、.NET?Framework項(xiàng)目并遠(yuǎn)程部署到IIS的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04.NET中的MassTransit分布式應(yīng)用框架詳解
MassTransit是一款優(yōu)秀的分布式應(yīng)用框架,可作為分布式應(yīng)用的消息總線,也可以用作單體應(yīng)用的事件總線,這篇文章主要介紹了.NET中的MassTransit分布式應(yīng)用框架,需要的朋友可以參考下2022-10-10ASP.NET Core使用Log4net實(shí)現(xiàn)日志記錄功能
這篇文章介紹了ASP.NET Core使用Log4net實(shí)現(xiàn)日志記錄功能的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03asp.net Cookie跨域、虛擬目錄等設(shè)置方法
Cookie跨域、虛擬目錄等設(shè)置方法,需要的朋友可以參考下。2009-11-11.net core版 文件上傳/ 支持批量上傳拖拽及預(yù)覽功能(bootstrap fileinput上傳文件)
本篇內(nèi)容主要解決.net core中文件上傳的問題 開發(fā)環(huán)境:ubuntu+vscode.本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2017-03-03asp.net下使用AjaxPro實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)代碼
本文展示了如何利用AjaxPro與服務(wù)器交互,并且還展示了在Js中可以直接調(diào)用服務(wù)器返回的集合和直接調(diào)用服務(wù)器上class的屬性2010-10-10國(guó)產(chǎn)化之銀河麒麟安裝.NetCore包管理器方式(步驟詳解)
這篇文章主要介紹了國(guó)產(chǎn)化之銀河麒麟安裝.NetCore-包管理器方式,本文給大家分享安裝步驟及安裝命令,對(duì)銀河麒麟安裝.NetCore相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03