asp.net中JavaScript數(shù)據(jù)驗(yàn)證實(shí)現(xiàn)代碼
更新時(shí)間:2010年05月21日 02:37:40 作者:
我對(duì)JavaScript一直不了解。常常為了一點(diǎn)點(diǎn)的數(shù)據(jù)驗(yàn)證和無(wú)刷新就去動(dòng)用AJAX,實(shí)在不爽——有點(diǎn)殺雞用牛刀的感覺(jué)。
今天在做一個(gè)數(shù)據(jù)修改的頁(yè)面,頁(yè)面上有一個(gè)DropDownList控件,綁定的是實(shí)體中的重要屬性,我希望用戶在修改該控件值的時(shí)候,提示用戶,他修改了該控件的值。所以為該下拉控件加上了如下語(yǔ)句。
DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");
似乎不錯(cuò),不僅有提示效果,也不需要刷新頁(yè)面??墒钱?dāng)我打開頁(yè)面進(jìn)行測(cè)試的時(shí)候就發(fā)現(xiàn)了問(wèn)題,當(dāng)我把下拉控件的值改回原值的時(shí)候,它還是會(huì)出現(xiàn)提示,這樣明顯會(huì)給用戶一種莫名其妙的感覺(jué)。怎么辦呢,用AJAX 進(jìn)行服務(wù)端驗(yàn)證?這想法太邪惡了,我決定嘗試用JS在客戶端實(shí)現(xiàn)。
實(shí)現(xiàn)的算法很簡(jiǎn)單,首先我去搜索當(dāng)頁(yè)面加載后立刻執(zhí)行JS的方法,用于獲取下拉控件綁定數(shù)據(jù)后的初始值。借助GOOGLE獲得了如下的成果
window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}
我的理解如下:
第1行: 頁(yè)面載入后即執(zhí)行function()——function是關(guān)鍵字吧,怪怪的用法,暫不理他。
第2行: 通過(guò)控件ID獲取控件的對(duì)象,這個(gè)var有點(diǎn)object的感覺(jué)
第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ò)也不告訴你),看來(lái)我已經(jīng)OUT了 囧....
復(fù)制代碼 代碼如下:
DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");
似乎不錯(cuò),不僅有提示效果,也不需要刷新頁(yè)面??墒钱?dāng)我打開頁(yè)面進(jìn)行測(cè)試的時(shí)候就發(fā)現(xiàn)了問(wèn)題,當(dāng)我把下拉控件的值改回原值的時(shí)候,它還是會(huì)出現(xiàn)提示,這樣明顯會(huì)給用戶一種莫名其妙的感覺(jué)。怎么辦呢,用AJAX 進(jìn)行服務(wù)端驗(yàn)證?這想法太邪惡了,我決定嘗試用JS在客戶端實(shí)現(xiàn)。
實(shí)現(xiàn)的算法很簡(jiǎn)單,首先我去搜索當(dāng)頁(yè)面加載后立刻執(zhí)行JS的方法,用于獲取下拉控件綁定數(shù)據(jù)后的初始值。借助GOOGLE獲得了如下的成果
復(fù)制代碼 代碼如下:
window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}
我的理解如下:
第1行: 頁(yè)面載入后即執(zhí)行function()——function是關(guān)鍵字吧,怪怪的用法,暫不理他。
第2行: 通過(guò)控件ID獲取控件的對(duì)象,這個(gè)var有點(diǎn)object的感覺(jué)
第3行: 獲取控件當(dāng)前選中行的值
這下好了,再修改下代碼就實(shí)現(xiàn)我的要求了。
//后臺(tái)代碼
DDLmaterial.Attributes.Add("onchange", "changeAlert()");
前端
復(fù)制代碼 代碼如下:
<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ò)也不告訴你),看來(lái)我已經(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)頁(yè)表單提交(submit)的方法
- Web表單提交之disabled問(wèn)題js解決方法
- javascript 回車鍵觸發(fā)表單提交的問(wèn)題
- 符合標(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)文章
.NET某消防物聯(lián)網(wǎng)后臺(tái)服務(wù)內(nèi)存泄漏分析
這篇文章主要為大家介紹了.NET某消防物聯(lián)網(wǎng)后臺(tái)服務(wù)內(nèi)存泄漏分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
.Net使用RabbitMQ即時(shí)發(fā)消息Demo
RabbitMQ是一個(gè)在AMQP基礎(chǔ)上完整的,可復(fù)用的企業(yè)消息系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于.Net使用RabbitMQ即時(shí)發(fā)消息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
為HttpClient添加默認(rèn)請(qǐng)求報(bào)頭的四種解決方案
這篇文章主要給大家介紹了關(guān)于為HttpClient添加默認(rèn)請(qǐng)求報(bào)頭的四種解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用HttpClient具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Asp.NET?Core?WebApi?配置文件詳細(xì)說(shuō)明
ASP.NET?Core?提供了一套靈活的配置系統(tǒng),允許開發(fā)者從多種來(lái)源加載配置數(shù)據(jù),并根據(jù)需要使用這些配置,這篇文章主要介紹了Asp.NET?Core?WebApi?配置文件,需要的朋友可以參考下2025-04-04
WPF關(guān)鍵幀動(dòng)畫介紹與實(shí)現(xiàn)
這篇文章介紹了WPF關(guān)鍵幀動(dòng)畫與實(shí)現(xiàn)方式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
AspNetPager與Socut.Data使用實(shí)例代碼
最近對(duì)AspNetPager與Socut.Data這兩個(gè)控件產(chǎn)生了濃厚的興趣,這兩個(gè)控件配合可以減輕很多程序員編寫代碼的壓力。ASpNetPager為分頁(yè)控件,而Socut.Data為數(shù)據(jù)操作控件,ACCESS,MSSQL都可以。2008-07-07
.NET?Core?實(shí)現(xiàn)緩存的預(yù)熱的方式
本文介紹了緩存預(yù)熱在.NETCore應(yīng)用中的重要性以及如何實(shí)現(xiàn)緩存預(yù)熱,緩存預(yù)熱可以提升用戶體驗(yàn)、降低數(shù)據(jù)庫(kù)壓力、提高系統(tǒng)穩(wěn)定性,感興趣的朋友一起看看吧2025-03-03
ASP.NET Page函數(shù)調(diào)用順序解析
asp.net頁(yè)面事件執(zhí)行順序,需要的朋友可以參考下。2010-06-06
Asp.net中通過(guò)Button打開另一個(gè)的frm
本文通過(guò)實(shí)例代碼給大家介紹了asp.net中通過(guò)button打開另一個(gè)frm的方法,非常不錯(cuò),需要的朋友參考下吧2016-12-12

