Uploader没有ValidationTextBox那种required属性,也就没法实现校验功能。但是实际应用中,我们有时需要提醒用户Uploader不能为空,也就是必须选择一个文件上传。
这时就需要给Uploader增加一个Tooltip,当用户提交form时,如果用户没有选择文件,就在Uploader旁边弹出Tooltip进行必要的提醒。下面看看我是怎么做的:
1、form里放了一个div,用于存放Uploader
<div id="pic"></div>2、编程式创建Uploader,并为其增加focus、blur事件处理方法
var up = new dojox.form.Uploader({ id: 'upPic',showInput: 'before',label: "选择图片" }); up.placeAt('pic'); up.startup(); on(up,"focus",lang.hitch(this,showTip,upPic)); // 当选中该Uploader时,调用showTip on(up,"blur",hideTip(upPic)); // 该Uploader失去焦点,调用hideTip3、Tooltip的显示与隐藏
// 显示提示 var showTip = function(node) { Tooltip.show('文件不能为空',node); } // 隐藏提示 var hideTip = function(node) { return function() { Tooltip.hide(node); } }
4、提交form时,根据Uploader的值判断其是否为空,为空就将其选中,这样就会触发focus事件,从而调用Tooltip显示提示信息
if( registry.byId('upPic').get('value').length == 0 ){ registry.byId('upPic').focus();// 选中 return false; }以上是Uploader与Tooltip集成的简单用法,也可以自定义一个widget,综合Uploader和Tooltip、validate等的功能,这是比较完美的解决方案,但是有些难度