Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS表单中的标准html输入。怎么做?_Javascript_Extjs - Fatal编程技术网

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'
  }
}