BBCode编辑器
/*
* Ext JS Library 2.0
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
Ext.ux.FileSelector = Ext.extend(Ext.form.TwinTriggerField, {
initComponent : function(){
Ext.ux.FileSelector.superclass.initComponent.call(this);
this.triggerConfig = {
tag:'span', cls:'x-form-twin-triggers', cn:[
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger1Class},
{tag:'span', cls:'ux-cabinet', cn:[
{tag: "img", id: this.id + "Selector", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class},
{tag: "div", id: this.id + "Wrapper", cls: "ux-input-file-wrapper", cn: [
{tag: "input", name: this.name + "FILE", type: "file", cls: "ux-file", id: this.id + "File"}
]}
]},
{tag: "input", name: this.name + "Keep", type: "checkbox", cls:"x-hidden", id: this.id + "Keep", value: 1}
]};
var v = this.getRawValue();
if(v.length > 0){
this.hasValue = true;
this.uxInitialValue = v;
}
this.on("render", this.uxStylizeTrigger, this);
},
uxInitialValue: false,
name: 'file',
readOnly: true,
validationEvent:false,
validateOnBlur:false,
trigger1Class:'x-form-clear-trigger',
trigger2Class:'x-form-search-trigger',
hideTrigger1:true,
width:250,
hasValue : false,
paramName : false,
onTrigger1Click : function(){
if(this.hasValue){
this.triggers[0].hide();
this.hasValue = false;
if(this.uxInitialValue) {
var keep = Ext.get(this.id + "Keep");
keep.dom.checked = true;
this.setValue(this.uxInitialValue);
} else {
this.setValue('');
}
var input = Ext.get(this.id + "File");
input.remove();
var wrapper = Ext.get(this.id + "Wrapper");
Ext.DomHelper.append(wrapper, {tag: "input", name: this.name + "FILE", type: "file", cls: "ux-file", id: this.id + "File"});
var input_new = Ext.get(this.id + "File");
input_new.on("change", this.uxHandleFile, this);
}
},
onTrigger2Click : function(){
this.hasValue = true;
this.triggers[0].show();
var keep = Ext.get(this.id + "Keep");
keep.dom.checked = false;
},
uxHandleFile : function() {
var input = Ext.get(this.id + "File");
//if this is unix style structure replace / with \
var filePath = input.dom.value.replace(///g, '\\');
//extract the filename from the value
var indexPos = filePath.lastIndexOf('\\');
var fileName = filePath.substring(indexPos + 1);
this.setValue(fileName);
search = /(zip|tar|gz)$/i;
if(search.test(fileName)) {
//alert('archive');
//createArchiveCheck(input);
}
this.onTrigger2Click();
},
uxStylizeTrigger : function(){
if(this.hasValue) {
var keep = Ext.get(this.id + "Keep");
keep.dom.checked = true;
}
var trigger = Ext.get(this.id + "Selector");
var wrapper = Ext.get(this.id + "Wrapper");
var input = Ext.get(this.id + "File");
input.on("change", this.uxHandleFile, this);
trigger.file = wrapper;
trigger.on("mousemove", function(e) {
var pageX = e.xy[0];
var pageY = e.xy[1];
ox = this.getX();
oy = this.getY();
var x = pageX - ox;
var y = pageY - oy;
var w = this.file.getWidth();
var h = this.file.getHeight();
this.file.setTop(y - (h / 2) - 5 + 'px');
this.file.setLeft(x - (w - 15) + 'px');
});
}
});
- 大小: 19 KB
分享到:
相关推荐
extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题
The class is ready for i18n, override the Ext.ux.UploadDialog.Dialog.prototype.i18n object with your language strings, or just pass i18n object in config. Server side handler. The files in the queue...
Ext.ux.tree.treegrid异步加载,点击节点加载数据
基于Ext Core的包含校验功能的表单提交扩展Ext.ux.submit
ext.ux.uploadDialog实例
EXTjs的上传组件
Ext.ux.UploadDialog批量上传文件应用,后台采用com.jspsmart.upload.SmartUpload。myeclipse工程,导入即可运行。
[Ext 3.x + Ext 2.x] 下拉树 Ext.ux.ComboBoxTree
Ext+SwfUpload做的一个多文件上传的插件.
在做文件上传的时候,发现了Ext.ux.UploadDialog这个强大的东西,实现了一下
带复选框的这是经过测试可以用的下拉树
1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing 7、Ext.ux.grid....
工程文件 博文链接:https://mutongwu.iteye.com/blog/693692
Ext.ux.GoogleChart extjs插件Ext.ux.GoogleChart extjs插件
ext.ux.menu.storemenu.zip
这个文件是重写ext的ColorPickerFieldPlus控件,实现自定义调色,和ps取颜色一样,比Ext自带的颜色多很多,是自己可以调的
Ext.ux.touch.DateTimePicker 该扩展通过扩展 Ext.Picker 为 Sencha Touch 框架提供了一个 DateTimePicker。用法datetimePicker = new Ext.ux.touch.DateTimePicker({ useTitles: true, id: 'dt', value: { day: 23,...
EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档...