asp.net中JavaScript資料驗證實現代碼

來源:互聯網
上載者:User

今天在做一個資料修改的頁面,頁面上有一個DropDownList控制項,綁定的是實體中的重要屬性,我希望使用者在修改該控制項值的時候,提示使用者,他修改了該控制項的值。所以為該下拉控制項加上了如下語句。 複製代碼 代碼如下:DDLmaterial.Attributes.Add("onchange", "alert('注意:您修改了物品類型!')");

似乎不錯,不僅有提示效果,也不需要重新整理頁面。可是當我開啟頁面進行測試的時候就發現了問題,當我把下拉控制項的值改回原值的時候,它還是會出現提示,這樣明顯會給使用者一種莫名其妙的感覺。怎麼辦呢,用AJAX 進行服務端驗證?這想法太邪惡了,我決定嘗試用JS在用戶端實現。
實現的演算法很簡單,首先我去搜尋當頁面載入後立刻執行JS的方法,用於擷取下拉控制項綁定資料後的初始值。藉助GOOGLE獲得了如下的成果 複製代碼 代碼如下:window.onload = function() {
var ddl= document.getElementById('DDLmaterial');
var first =ddl.options[ddl.selectedIndex].text;
}

我的理解如下:
第1行: 頁面載入後即執行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>

總結一下:突然發現VS2008居然寫JS代碼的時候也有智能提示了(這實在太棒了,菜鳥的福音,JS代碼貌似是執行到哪算到哪,出錯也不告訴你),看來我已經OUT了 囧....

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.