视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
asp.net中JavaScript数据验证实现代码
2020-11-27 22:43:14 责编:小采
文档

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

下载本文
显示全文
专题