asp.net中JavaScript数据验证实现代码
asp.net中JavaScript数据验证实现代码
发布时间:2016-12-29 来源:查字典编辑
摘要:今天在做一个数据修改的页面,页面上有一个DropDownList控件,绑定的是实体中的重要属性,我希望用户在修改该控件值的时候,提示用户,他...

今天在做一个数据修改的页面,页面上有一个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了 囧....

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类