似乎不錯,不僅有提示效果,也不需要刷新頁面。可是當我打開頁面進行測試的時候就發現了問題,當我把下拉控件的值改回原值的時候,它還是會出現提示,這樣明顯會給用戶一種莫名其妙的感覺。怎么辦呢,用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>