似乎不错,不仅有提示效果,也不需要刷新页面。可是当我打开页面进行测试的时候就发现了问题,当我把下拉控件的值改回原值的时候,它还是会出现提示,这样明显会给用户一种莫名其妙的感觉。怎么办呢,用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>