Javascript ExtJS表单中的标准html输入。怎么做?
我想将Javascript ExtJS表单中的标准html输入。怎么做?,javascript,extjs,Javascript,Extjs,我想将file类型的标准html输入添加到我的ExtJS表单中。我想要这个,因为在4.1版的框架中有一个bug-filefield在提交后被重置。我尝试了stackoverflow的所有补丁,比如: Ext.form.field.File.override({ extractFileInput: function() { var me = this, fileInput = me.fileInputEl.dom,
file
类型的标准html输入添加到我的ExtJS表单中。我想要这个,因为在4.1版的框架中有一个bug-filefield
在提交后被重置。我尝试了stackoverflow的所有补丁,比如:
Ext.form.field.File.override({
extractFileInput: function() {
var me = this,
fileInput = me.fileInputEl.dom,
clone = fileInput.cloneNode(true);
fileInput.parentNode.replaceChild(clone, fileInput);
me.fileInputEl = Ext.get(clone);
return fileInput;
}
});
或
是的,我在文件字段中将clearOnSubmit
设置为false
。在FF中有效,在IE中无效。所以,我想在表单中使用老式的
。我尝试了以下两种方法:
{
xtype:'panel',
html:'<input type="file" name="file" />'
}
{
xtype:“面板”,
html:'
}
及
{
xtype:'displayfield',
值:“”
}
但它们不起作用。在服务器端,我看到一个空的$\u文件数组。如下所示:
{
xtype: 'box',
autoEl: {
tag: 'input',
type: 'file',
name: 'file'
}
}
不幸的是,在这条路上你会经历一段非常艰难的时光,最终,它可能会让你一事无成 首先,这是你问题的纯外部部分。正如您已经看到的,该字段未提交。这是因为Ext不知道它是它的一个组件,因为一个表单字段,实际上它根本不知道它。在您的用例中,这是两次中断,因为Ext需要执行一个测试。这一部分是可以修复的,但并非微不足道:请参阅 但是真正的困难来了。。。每个浏览器对文件输入的处理方式都不同,通常情况下,IE尤其如此。但在这种情况下,任何试图消除这些差异的尝试都将因浏览器不允许而注定失败。因为用户的文件系统当然是一个主要的安全问题,所以不要搞乱它。看,奇怪的是,和你的相似,而且缺乏令人信服的答案。。。那么,您想要的行为,甚至可以在IE中使用标准HTML吗?不确定,如果不是这样,你就无能为力了
也许您可以使用HTML5文件API构建符合您需要的东西,但您的目标浏览器也可能不支持它。不管怎样,就像我说的,这不是一件容易的事。。。我认为现在对你来说最好的办法是在你的设计中搜索一个解决方法,或者认为这对IE用户来说是一个小麻烦,就让它过去。出于某种原因,它没有提交到服务器端。顺便说一下,这个“官方”示例演示了文件字段的这种错误行为-如果你上传一次照片,但按两次保存按钮,您将看到,第二次没有向服务器提交任何内容。
{
xtype:'displayfield',
value:'<input type="file" name="file" />'
}
{
xtype: 'box',
autoEl: {
tag: 'input',
type: 'file',
name: 'file'
}
}